
                             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KJr   " S S\
R*                  5      rg)z1Create Cloud Source Repositories trigger command.    )absolute_import)division)unicode_literals)cloudbuild_util)trigger_config)base)resource_args)concept_parsers)presentation_specs)log)
properties)	resourcesc                   <    \ rS rSrSrSS0r\S 5       rS rS r	Sr
g	)
	CreateCSR    z6Create a build trigger from a Cloud Source Repository.EXAMPLESa              To create a push trigger for all branches:

              $ {command} --name="my-trigger" --service-account="projects/my-project/serviceAccounts/my-byosa@my-project.iam.gserviceaccount.com" --repo="my-repo" --branch-pattern=".*" --build-config="cloudbuild.yaml"
          c                    [         R                  " U 5      n[        R                  " S[        R
                  " 5       SSSS9n[        R                  " U/5      R                  U5        UR                  SS9n[         R                  " U5        [         R                  " U5        [         R                  " U5        [         R                  " U5        g)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.
z--repozCloud Source Repository.TF)requiredprefixesr   N)trigger_utilsAddTriggerArgsr   ResourcePresentationSpecrepo_resourceGetRepoResourceSpecr
   ConceptParserAddToParseradd_mutually_exclusive_groupAddBranchPatternAddTagPatternAddBuildConfigArgsAddRepoEventArgs)parserflag_config	repo_spec
ref_configs       ?lib/surface/builds/triggers/create/cloud_source_repositories.pyArgsCreateCSR.Args,   s      ..v6K";;))+"I !!9+.::;G9949HJ"":.
+$$[1"";/    c                 x   [         R                  " 5       n[        R                  " X5      u  p4U(       a  U$ UR                  R
                  R                  5       nUR                  nUR                  UR                  UR                  UR                  UR                  UUR                  UR                  S9S9n[        R                  " X1U5        [         R"                  R$                  R&                  R)                  SS9nSU< SU< S3n[        R*                  " X1X(5        [        R,                  " X15        U$ )zParses command line arguments into a build trigger.

Args:
  args: An argparse arguments object.

Returns:
  A build trigger object.
)repoName
branchNametagName)namedescriptionserviceAccounttriggerTemplateTr   zgcr.io//z:$COMMIT_SHA)r   GetMessagesModuler   ParseTriggerArgsCONCEPTSrepoParsereposIdBuildTriggerr/   r0   service_account
RepoSourcebranch_patterntag_patternParseRequireApprovalr   VALUEScoreprojectGetParseBuildConfigArgsParseRepoEventArgs)	selfargsmessagestriggerdonerepo_refr7   rB   default_images	            r'   ParseTriggerFromFlagsCreateCSR.ParseTriggerFromFlagsD   s    002H!224BMGn}}!!'')HD##YY$$++ ++**$$ , 
	 $ 	G &&wh? $$,,00$0?G294@M&&whN$$W3Nr*   c           	         [         R                  " 5       nU R                  U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[        R                  R                  SUUS9R                  5       nUR                   R                  UR#                  XS95      n	[        R                  R%                  SSSUUU	R&                  S	.S
9n
[(        R*                  " U
5        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:
  Some value that we want to have printed later.
Tr   zcloudbuild.projects.locations)
collection
projectsIdlocationsId)parentbuildTriggerNz&cloudbuild.projects.locations.triggersv1)rQ   rR   
triggersId)rP   api_versionparams)r   r4   rM   GetClientInstancer   r@   rA   rB   rC   buildsregionDEFAULT_REGIONr   REGISTRYCreateRelativeNameprojects_locations_triggers0CloudbuildProjectsLocationsTriggersCreateRequestr8   idr   CreatedResource)rF   rG   rH   rI   clientrB   
regionproplocationrS   created_triggertrigger_resources              r'   RunCreateCSR.Runi   sA    002H((.G ..0F$$,,00$0?G""))00446J{{JjJO,J,JH&&2 '  +ln  88??AA 	B 	12O !))//;!#),,
	 0  ()r*    N)__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr(   rM   ri   __static_attributes__rk   r*   r'   r   r       s5    > - 0 0.#J&r*   r   N)rp   
__future__r   r   r   !googlecloudsdk.api_lib.cloudbuildr   r   r   googlecloudsdk.callioper   !googlecloudsdk.command_lib.sourcer	   r   (googlecloudsdk.command_lib.util.conceptsr
   r   googlecloudsdk.corer   r   r   CreateCommandr   rk   r*   r'   <module>r{      sB    8 &  ' = M ( L D G # * )o"" or*   