
    '                     j   d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlm	Z	 ddl
mZ dd	lmZ d
ddZe	j                   e	j                   e	j"                  j$                  e	j"                  j&                  e	j"                  j(                         G d de	j*                                      Zee_        y)z$Create intercept deployment command.    )absolute_import)division)unicode_literalsN)api)base)deployment_flags)labels_utilaA  
          Create an intercept deployment. Successful creation of a deployment results
          in a deployment in ACTIVE state. Check the progress of deployment creation
          by using `gcloud network-security intercept-deployments list`.

          For more examples, refer to the EXAMPLES section below.

        a  
            To create an intercept deployment called `my-deployment`, in project ID `my-project` and zone `us-central1-a`, run:
            $ {command} my-deployment --project=my-project --location=us-central1-a --deployment-group-location=global
            --forwarding-rule=my-forwarding-rule --forwarding-rule-location=us-central1 --intercept-deployment-group=my-deployment-group

            OR

            $ {command} my-deployment --project=my-project --location=us-central1-a
            --forwarding-rule=projects/my-project/regions/us-central1/forwardingRules/my-forwarding-rule
            --intercept-deployment-group=projects/my-project/locations/global/interceptDeploymentGroups/my-deployment-group

            OR

            $ {command} projects/my-project/locations/us-central1/interceptDeployments/my-deployment
            --forwarding-rule=projects/my-project/regions/us-central1/forwardingRules/my-forwarding-rule
            --intercept-deployment-group=projects/my-project/locations/global/interceptDeploymentGroups/my-deployment-group

            OR

            $ {command} projects/my-project/locations/us-central1/interceptDeployments/my-deployment
            --forwarding-rule=projects/my-project/regions/us-central1/forwardingRules/my-forwarding-rule
            --intercept-deployment-group=projects/my-project/locations/global/interceptDeploymentGroups/my-deployment-group
            --description="my-description"

        )DESCRIPTIONEXAMPLESc                   &    e Zd ZdZed        Zd Zy)CreatezCreate an Intercept Deployment.c                    t        j                  | j                         |       t        j                  |       t        j                  | j                         |       t        j
                  |d       t        j                  |       t        j                  j                  |       t        j                  j                  |d       t        j                  |       y )N20mT)r   AddDeploymentResourceReleaseTrackAddForwardingRuleResource#AddInterceptDeploymentGroupResource
AddMaxWaitAddDescriptionArgr   
ASYNC_FLAGAddToParser
SetDefaultr	   AddCreateLabelsFlags)clsparsers     <lib/surface/network_security/intercept_deployments/create.pyArgszCreate.ArgsH   s    **3+;+;+=vF..v688F  &&v.OO'OOvt,$$V,    c                 j   t        j                  | j                               }|j                  j                  j                         }|j                  j                  j                         }|j                  j                  j                         }t        j                  ||j                  j                  j                        }|j                  }t        j                  |j                         }|j#                  |j%                         |j'                         j)                         |j)                         |j)                         t+        |dd       |      }	|r|j-                  d      sd|_        |	S |j1                  |j3                  |	      dj/                  |j)                               d|      S )	N)secondsdescription)deployment_idparentforwarding_ruleintercept_deployment_groupr!   labelsformatdefaultz3waiting for intercept deployment [{}] to be createdT)operation_refmessage
has_resultmax_wait)r   Clientr   CONCEPTSintercept_deploymentParser$   r%   r	   ParseCreateArgsmessagesInterceptDeploymentLabelsValueasync_datetime	timedeltar,   CreateDeploymentNameParentRelativeNamegetattrIsSpecifiedr'   WaitForOperationGetOperationRef)
selfargsclient
deploymentr$   r%   r&   is_asyncr,   	operations
             r   Runz
Create.RunX   so   ZZ))+,F3399;Jmm3399;O00668  ((foo11==F {{H!!$--8H'' oo'  "//1'446#=#J#J#LD-6 ( I  h'"",,Y7AHH'')  # 	 	r   N)__name__
__module____qualname____doc__classmethodr   rF    r   r   r   r   A   s    
 (- -'r   r   )rJ   
__future__r   r   r   r6   =googlecloudsdk.api_lib.network_security.intercept_deploymentsr   googlecloudsdk.callioper   5googlecloudsdk.command_lib.network_security.interceptr   $googlecloudsdk.command_lib.util.argsr	   DETAILED_HELPDefaultUniverseOnlyReleaseTracksr   ALPHABETAGACreateCommandr   detailed_helprL   r   r   <module>rZ      s    + &  '  M ( R <"J T..33T5F5F5I5I:T : :z % r   