
                         ~   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Z
e
dz   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Set IAP settings.    )absolute_import)division)unicode_literals)base)utila	            To set the IAP setting for the resources within an organization, run:

            $ {command} iap_settings.yaml --organization=ORGANIZATION_ID

          To set the IAP setting for the resources within a folder, run:

            $ {command} iap_settings.yaml --folder=FOLDER_ID

          To set the IAP setting for the resources within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID

          To set the IAP setting for web type resources within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=iap_web

          To set the IAP setting for all app engine services within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=app-engine

          To set the IAP setting for an app engine service within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=app-engine --service=SERVICE_ID

          To set the IAP setting for an app engine service version within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=app-engine --service=SERVICE_ID
                --version=VERSION_ID

          To set the IAP setting for all backend services within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=backend-services

          To set the IAP setting for a backend service within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=backend-services --service=SERVICE_ID

          To set the IAP setting for a region backend service within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=backend-services --service=SERVICE_ID
                --region=REGION_ID

          To set the IAP setting for all forwarding rule within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=forwarding-rule

          To set the IAP setting for a forwarding rule within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=forwarding-rule --service=SERVICE_ID

          To set the IAP setting for a region forwarding rule within a project, run:

            $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=forwarding-rule --service=SERVICE_ID
              --region=REGION_ID
          a  
    To set the IAP setting for the all cloud run services within a region of a project, run:

      $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=cloud-run --region=REGION_ID

    To set the IAP setting for a cloud run service within a project, run:

      $ {command} iap_settings.yaml --project=PROJECT_ID --resource-type=cloud-run --region=REGION_ID --service=SERVICE_ID
    c                   2    e Zd ZdZdeiZdZed        Zd Z	y)Set$Set the setting for an IAP resource.EXAMPLESFc                     t        j                  || j                         t        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AddIapSettingArg_support_cloud_runAddIapSettingFileArgr   URI_FLAGRemoveFromParser)clsparsers     lib/surface/iap/settings/set.pyArgszSet.Argsh   s?     #"8"8 !!&)MM""6*    c                     t        j                  | 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   ParseIapSettingsResourceReleaseTrackr   SetIapSettingsetting_file)selfargsiap_setting_refs      r   RunzSet.Runv   sE     77O
 (():):;;r   N)
__name__
__module____qualname____doc__r   detailed_helpr   classmethodr   r!    r   r   r	   r	   ]   s4     - (- + +<r   r	   c                       e Zd ZdZdeiZdZy)SetBetar
   r   TN)r"   r#   r$   r%   NON_GA_EXAMPLESr&   r   r(   r   r   r*   r*      s    ,/- r   r*   N)r%   
__future__r   r   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.iapr   r   r   r+   ReleaseTracksr   GADefaultUniverseOnlyCommandr	   ALPHABETAr*   r(   r   r   <module>r5      s     &  ' ( ;7r  	 	 D%%(()&<$,, &<  *&<R D%%++T->->-C-CDc  Er   