ó
    €Ï+  ã                   ó€   • S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr  S	 rS
 rS rS rS rS rg)zDProvides helper methods for dealing with JSON files for Spanner IAM.é    )Úabsolute_import)Údivision)Úunicode_literals)Ú	databases)Ú	instances)Úapis)Úiam_utilc                 óÌ   • [         R                  " SS5      n[        R                  " U 5      n[        R
                  " UR                  XAU5        [        R                  " X5      $ )z0Adds a policy binding to an instance IAM policy.ÚspannerÚv1)r   ÚGetMessagesModuler   ÚGetIamPolicyr	   ÚAddBindingToIamPolicyÚBindingÚ	SetPolicy)Úinstance_refÚmemberÚroleÚmsgsÚpolicys        Ú-lib/googlecloudsdk/command_lib/spanner/iam.pyÚAddInstanceIamPolicyBindingr      óK   € ä	×	Ò	 	¨4Ó	0€$Ü×!Ò! ,Ó/€&Ü
× Ò  §¡¨v¸tÔDÜ	×	Ò	˜\Ó	2Ð2ó    c                 ó¤   • [         R                  " SS5      n[        R                  " UUR                  5      u  p[
        R                  " XU5      $ )z#Sets the IAM policy on an instance.r   r   )r   r   r	   ÚParsePolicyFileWithUpdateMaskÚPolicyr   r   )r   r   r   Ú
field_masks       r   ÚSetInstanceIamPolicyr   #   sD   € ä	×	Ò	 	¨4Ó	0€$Ü×=Ò=¸fØ>B¿k¹kóKÑ€&ä	×	Ò	˜\°:Ó	>Ð>r   c                 óˆ   • [         R                  " U 5      n[        R                  " X1U5        [         R                  " X5      $ )z5Removes a policy binding from an instance IAM policy.)r   r   r	   ÚRemoveBindingFromIamPolicyr   )r   r   r   r   s       r   ÚRemoveInstanceIamPolicyBindingr"   +   ó3   € ä×!Ò! ,Ó/€&Ü
×%Ò% f°dÔ;Ü	×	Ò	˜\Ó	2Ð2r   c                 óÌ   • [         R                  " SS5      n[        R                  " U 5      n[        R
                  " UR                  XAU5        [        R                  " X5      $ )z/Adds a policy binding to a database IAM policy.r   r   )r   r   r   r   r	   r   r   r   )Údatabase_refr   r   r   r   s        r   ÚAddDatabaseIamPolicyBindingr&   2   r   r   c                 óœ   • [         R                  " SS5      n[        R                  " XR                  5      n[
        R                  " X5      $ )z"Sets the IAM policy on a database.r   r   )r   r   r	   ÚParsePolicyFiler   r   r   )r%   r   r   s      r   ÚSetDatabaseIamPolicyr)   :   s9   € ä	×	Ò	 	¨4Ó	0€$Ü×#Ò# F¯K©KÓ8€&Ü	×	Ò	˜\Ó	2Ð2r   c                 óˆ   • [         R                  " U 5      n[        R                  " X1U5        [         R                  " X5      $ )z4Removes a policy binding from a database IAM policy.)r   r   r	   r!   r   )r%   r   r   r   s       r   ÚRemoveDatabaseIamPolicyBindingr+   A   r#   r   N)Ú__doc__Ú
__future__r   r   r   Úgooglecloudsdk.api_lib.spannerr   r   Úgooglecloudsdk.api_lib.utilr   Úgooglecloudsdk.command_lib.iamr	   r   r   r"   r&   r)   r+   © r   r   Ú<module>r2      s>   ðñ Kå &Ý Ý 'å 4Ý 4Ý ,Ý 3ò3ò?ò3ò3ò3ó3r   