
                         n   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ d	Z ej                  ej                  j                          G d
 dej"                               Z ej                  ej                  j&                  ej                  j(                         G d de             Zy)z=`gcloud service-directory namespaces set-iam-policy` command.    )absolute_import)division)unicode_literals)
namespaces)base)iam_util)resource_args	namespacec                   4    e Zd ZdZddiZed        Zd Zd Zy)SetIamPolicy Sets IAM policy for a namespace.EXAMPLESz          To set an IAM policy to a Service Directory namespace, run:

            $ {command} my-namespace --location=us-east1 policy.json
          c                 Z    t        j                  | d       t        j                  |        y )Nzto add IAM policy binding to.)r	   AddNamespaceResourceArgr   AddArgForPolicyFile)parsers    :lib/surface/service_directory/namespaces/set_iam_policy.pyArgszSetIamPolicy.Args*   s&    ))+-   (    c                 p   t        j                  | j                               }|j                  j                  j                         }t        j                  |j                  |j                  j                        }|j                  ||      }t        j                  |j                         t               |S N)r   NamespacesClientGetReleaseTrackCONCEPTSr
   Parser   ParsePolicyFilepolicy_filemsgsPolicyr   LogSetIamPolicyName_RESOURCE_TYPE)selfargsclientnamespace_refpolicyresults         r   RunzSetIamPolicy.Run2   s    (()=)=)?@FMM++113M%%d&6&68J8JKF  7F]//1>BMr   c                 6    t         j                  j                  S r   )r   ReleaseTrackGAr#   s    r   r   zSetIamPolicy.GetReleaseTrack<   s    r   N)	__name__
__module____qualname____doc__detailed_helpstaticmethodr   r)   r    r   r   r   r      s4    ( - ) ) r   r   c                       e Zd ZdZd Zy)SetIamPolicyBetar   c                 6    t         j                  j                  S r   )r   r+   BETAr-   s    r   r   z SetIamPolicyBeta.GetReleaseTrackD   s    !!!r   N)r.   r/   r0   r1   r   r4   r   r   r6   r6   @   s
    ("r   r6   N)r1   
__future__r   r   r   (googlecloudsdk.api_lib.service_directoryr   googlecloudsdk.callioper   googlecloudsdk.command_lib.iamr   ,googlecloudsdk.command_lib.service_directoryr	   r"   ReleaseTracksr+   r,   Commandr   ALPHAr8   r6   r4   r   r   <module>rA      s    D &  ' ? ( 3 F D%%(() 4<<   * D D%%++T->->-C-CD"| " E"r   