
                         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d	lmZ dd
lmZ ddlmZ e	j"                   e	j$                  e	j&                  j(                  e	j&                  j*                  e	j&                  j,                         G d de	j.                                      Zy)zCreates or updates a workflow.    )absolute_import)division)unicode_literals)validate)	workflows)base)labels_util)flags)hooks)logc                   0    e Zd ZdZdddZed        Zd Zy)DeployzCreate or update a workflow.z{description}a            To deploy a workflow with source code myWorkflow.yaml on Workflows:

            $ {command} my-workflow --source=myWorkflow.yaml

          You may also skip waiting for the operation to finish:

            $ {command} my-workflow --source=myWorkflow.yaml --async

          To specify a service account as the workflow identity:

            $ {command} my-workflow --source=myWorkflow.yaml --service-account=my-account@my-project.iam.gserviceaccount.com
          )DESCRIPTIONEXAMPLESc                 @   t         j                  j                  |       t        j                  |       t        j                  |d       t        j                  |       t        j                  |       t        j                  |       | j                         t         j                  j                  u rjt        j                  |       t        j                  |       t        j                  |       t        j                  |       t        j                   |       y y )Nz	to deploy)verb)r   
ASYNC_FLAGAddToParserr	   AddCreateLabelsFlagsr
   AddWorkflowResourceArgAddSourceArgAddDescriptionArgAddServiceAccountArgReleaseTrackGAAddKmsKeyFlagsAddWorkflowLoggingArg#AddWorkflowExecutionHistoryLevelArgAddUserEnvVarsFlagsAddWorkflowTagsArg)clsparsers     lib/surface/workflows/deploy.pyArgszDeploy.Args6   s    OO'$$V,	  k:	v	F#	v&
T..1116"!!&)//7'v& 2    c                    t        j                  d|d       t        j                  | j	                               }t        j
                  |      }t        j                  |      }t        j                  |j                                |j                  |      }|du }|j                  ||| j	                               \  }}t        j                  ||       |r|j                  ||      }	n5|s t        j                   j#                  d       y|j%                  |||      }	|j&                  r|	S |j)                  |	|      S )zDeploy a workflow.N)first_deploymentz)No updates provided, quitting as a no-op.)r   print_default_location_warningr   ReleaseTrackToApiVersionr   WorkflowsClientr
   ParseWorkflowr   WorkflowNameConformsNameGetBuildWorkflowFromArgsValidateWorkflowCreater   statusPrintPatchasync_WaitForOperation)
selfargsapi_versionclientworkflow_refold_workflowr'   workflowupdated_fields	operations
             r#   Runz
Deploy.RunE   s   	((tT:44T5F5F5HIK&&{3F&&t,L!!,"3"3"56::l+L#t+%;;lD--/ Hn h9IJ--h7i

DE,,|X~Fi{{$$Y==r%   N)__name__
__module____qualname____doc__detailed_helpclassmethodr$   r@    r%   r#   r   r      s1    
 % %-" ' '>r%   r   N)rD   
__future__r   r   r    googlecloudsdk.api_lib.workflowsr   r   googlecloudsdk.callioper   $googlecloudsdk.command_lib.util.argsr	   $googlecloudsdk.command_lib.workflowsr
   r   googlecloudsdk.corer   DefaultUniverseOnlyReleaseTracksr   ALPHABETAr   CacheCommandr   rG   r%   r#   <module>rS      s    % &  ' 5 6 ( < 6 6 # T..33T5F5F5I5I:>T :> :>r%   