
                             S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr   " S S\
R&                  5      rg)zUpdate manual trigger command.    )absolute_import)division)unicode_literals)cloudbuild_util)trigger_config)base)resource_args)concept_parsers)log)
properties)	resourcesc                   <    \ rS rSrSrSS0r\S 5       rS rS r	Sr
g	)
UpdateManual   z-Updates a manual trigger used by Cloud Build.EXAMPLESz            To update the branch from which the trigger clones:

              $ {command} my-trigger --source-to-build-branch=my-branch
          c                    [         R                  R                  S[        R                  " 5       SSS9R                  U 5        [        R                  " U SSS9n[        R                  " USSS9  [        R                  " U5        g)	zRegisters 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.
TRIGGERzBuild Trigger.TrequiredF)add_region_flagadd_name)has_file_sourcerequire_docker_imageN)
r
   ConceptParserForResourcer	   GetTriggerResourceSpecAddToParsertrigger_utilsAddTriggerArgsAddBuildConfigArgsForUpdateAddRepoSourceForUpdate)parserflag_configs     ,lib/surface/builds/triggers/update/manual.pyArgsUpdateManual.Args+   s|     !!--,,.	 . 
 k&..K --T ((5    c                 4   [         R                  " 5       n[        R                  " X5      u  pVU(       a  U$ [        R
                  R                  R                  R                  SS9nSU< SUR                  < S3n[        R                  " UUUUUUSSS9  U$ )zParses arguments into a build trigger.

Args:
  args: An argparse arguments object.
  old_trigger: The existing trigger to be updated.
  update_mask: The fields to be updated.

Returns:
  A build trigger object.
Tr   zgcr.io/z/gcb-z:$COMMIT_SHA)has_repo_sourcer   )r   GetMessagesModuler   ParseTriggerArgsForUpdater   VALUEScoreprojectGetr   ParseBuildConfigArgsForUpdate)	selfargsold_triggerupdate_maskmessagestriggerdoner.   default_images	            r$   ParseTriggerFromFlags"UpdateManual.ParseTriggerFromFlagsB   s     002H!;;DKMGn$$,,00$0?G6=t||LM// Nr'   c                   ^ [         R                  " 5       n[         R                  " 5       n[        R                  R
                  R                  R                  SS9n[        R                  R                  R                  R                  5       nUR                  =(       d    U=(       d    [         R                  nUR                  n[        R                  R                  UUUUS.SS9R                  5       nUR                   R                  UR"                  R%                  XS95      n	/ n
U R'                  XU
5      nSmU
R)                  [         R*                  " U5      5        [-        [/        [1        U4S jU
5      5      5      n
UR3                  UUUS	R5                  U
5      S
9nUR                   R7                  U5      n[8        R:                  " USS9  U$ )zThis 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 updated manual trigger.
Tr   )
projectsIdlocationsId
triggersIdz&cloudbuild.projects.locations.triggers)params
collection)name	triggerIdsubstitutionsc                 8   > U R                  T5      (       a  T$ U $ )N)
startswith)msubs    r$   <lambda>"UpdateManual.Run.<locals>.<lambda>   s    c!2!2#99r'   ,)resourceNamerB   buildTrigger
updateMaskbuild_trigger)kind)r   GetClientInstancer*   r   r,   r-   r.   r/   buildsregionDEFAULT_REGIONr   r   REGISTRYParseRelativeNameprojects_locations_triggersMESSAGES_MODULE-CloudbuildProjectsLocationsTriggersGetRequestr9   extendMessageToFieldPathssortedsetmap/CloudbuildProjectsLocationsTriggersPatchRequestjoinPatchr   UpdatedResource)r1   r2   clientr5   r.   
regionproplocation	triggeridrA   r3   r4   r6   requpdated_triggerrG   s                 @r$   RunUpdateManual.Runa   s    ..0F002H$$,,00$0?G""))00446J{{JjJO,J,JHI##!##

 < $  ln 	 4488LL 	M 	
K K((KHG C::7CDC9;GHK 
B
B88K(	 C C 88>>sCO	8r'    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr%   r9   ri   __static_attributes__rk   r'   r$   r   r      s4    5 - 6 6,>6r'   r   N)rp   
__future__r   r   r   !googlecloudsdk.api_lib.cloudbuildr   r   r   googlecloudsdk.callioper   %googlecloudsdk.command_lib.cloudbuildr	   (googlecloudsdk.command_lib.util.conceptsr
   googlecloudsdk.corer   r   r   UpdateCommandr   rk   r'   r$   <module>r{      s?    % &  ' = M ( ? D # * )x4%% xr'   