
                         p   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	  ej                  ej                  j                        ej                   G d dej                                      Z ej                  ej                  j                   ej                  j"                         G d	 d
e             Zy)zGet IAM Policy.    )absolute_import)division)unicode_literals)base)utilc                   2    e Zd ZdZddiZdZed        Zd Zy)GetIamPolicy  Get IAM policy for an IAP IAM resource.

  *{command}* displays the IAM policy associated with an IAP IAM
  resource. If formatted as JSON, the output can be edited and used as a policy
  file for set-iam-policy. The output includes an "etag" field
  identifying the version emitted and allowing detection of
  concurrent policy updates; see
  $ {parent_command} set-iam-policy for additional details.
  EXAMPLESa>            To get the IAM policy for the web accesses to the IAP protected
          resources within the active project,
          run:

            $ {command}

          To get the IAM policy for the web accesses to the IAP protected
          resources within a project, run:

            $ {command} --project=PROJECT_ID

          To get the IAM policy for the web accesses to the IAP protected
          resources within an App Engine application, run:

            $ {command} --resource-type=app-engine

          To get the IAM policy for the web accesses to the IAP protected
          resources within an App Engine service, run:

            $ {command} --resource-type=app-engine --service=SERVICE_ID

          To get the IAM policy for the web accesses to the IAP protected
          resources within an App Engine service version, run:

            $ {command} --resource-type=app-engine --service=SERVICE_ID
                --version=VERSION

          To get the IAM policy for the web accesses to the IAP protected
          resources within all backend services, run:

            $ {command} --resource-type=backend-services

          To get the IAM policy for the web accesses to the IAP protected
          resources within a backend service, run:

            $ {command} --resource-type=backend-services --service=SERVICE_ID

          To get the IAM policy for the web accesses to the IAP protected
          resources within a regional backend service, run:

            $ {command} --resource-type=backend-services --service=SERVICE_ID
              --region=REGION

  Fc                     t        j                  || j                         t        j                  j                  |       y)zRegister flags for this command.

    Args:
      parser: An argparse.ArgumentParser-like object. It is mocked out in order
          to capture some information, but behaves like an ArgumentParser.
    )support_cloud_runN)iap_utilAddIapIamResourceArgs_support_cloud_runr   URI_FLAGRemoveFromParser)clsparsers     %lib/surface/iap/web/get_iam_policy.pyArgszGetIamPolicy.ArgsY   s2     ""00 	MM""6*    c                     t        j                  | j                         || j                        }|j	                         S )a  This is what gets called when the user runs this command.

    Args:
      args: an argparse namespace. All the arguments that were provided to this
        command invocation.

    Returns:
      The specified function with its description and configured filter.
    )r   ParseIapIamResourceReleaseTrackr   r	   )selfargsiap_iam_refs      r   RunzGetIamPolicy.Rung   s=     ..!K ##%%r   N)	__name__
__module____qualname____doc__detailed_helpr   classmethodr   r    r   r   r	   r	      s8     ,/-b + +&r   r	   c                       e Zd ZdZdZy)GetIamPolicyAlphar
   TN)r   r    r!   r"   r   r%   r   r   r'   r'   x   s     r   r'   N)r"   
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.iapr   r   ReleaseTracksr   GADefaultUniverseOnlyListCommandr	   ALPHABETAr'   r%   r   r   <module>r1      s      &  ' ( ; D%%(()Y&4## Y&  *Y&x D%%++T->->-C-CD  Er   