
                         D    S r SSKJr  S rS rS rS rS rS rS	 r	S
 r
g)z0Flags and helpers for the Developer Connect CLI.    )arg_parsersc                 &    U R                  SSSS9  g)zCreates state argument.z--run-discovery
store_truezQSets the state of the insight config to PENDING and kicks off the discovery flow.)actionhelpNadd_argumentparsers    9lib/googlecloudsdk/command_lib/developer_connect/flags.pyAddDiscoveryArgumentr      s     	      c                 *    U R                  SSSSSS9  g)zCreates artifact argument.z--artifact-uriARTIFACT_URIartifact_uriTz7Identifier for the specific artifact you want to updatemetavardestrequiredr   Nr   r
   s    r   AddArtifactArgumentr       s$    
C  r   c                 *    U R                  SSSSSS9  g)zCreates build project argument.z--build-projectBUILD_PROJECTbuild_projectTz=The project ID of the project to where the artifact is built.r   Nr   r
   s    r   AddBuildProjectArgumentr   -   s$    
I  r   c                 (    U R                  SSSSS9  g)z%Creates app hub application argument.z--app-hub-applicationAPP_HUB_APPLICATIONapp_hub_applicationzBThe App Hub application to which the insight config is associated.)r   r   r   Nr   r
   s    r   AddAppHubApplicationArgumentr   :   s!    # O	  r   c           	      R    U R                  SSS[        R                  " 5       SSS9  g)z!Creates target projects argument.z--target-projectsTARGET_PROJECTStarget_projectszA comma-separated list of target project IDs/numbers to which the insight config is associated.

Format examples:
`--target-projects=123567890,my-project`
`--target-projects=projects/1234567890,projects/my-project`
 T)r   r   typer   hiddenN)r	   r   ArgListr
   s    r   AddTargetProjectsArgumentr%   D   s4        r   c                    U R                  S5      (       a  U R                  S5      (       a  U SS nOHU R                  S5      (       d  U R                  S5      (       a  [        R                  " SU  S35      eU nUR	                  S5      nU$ )z%Removes outer brackets from a string.[]   !Invalid artifact config string: 'z'. Inconsistent brackets.z][)
startswithendswithr   ArgumentTypeErrorsplit)input_stringstripped_stringpartss      r   RemoveOuterBracketsr3   W   s    S!!l&;&;C&@&@"1R(Os##|'<'<S'A'A

'
'
+L> : 	 
 #O



%%	,r   c           	      
   U (       d  0 $ 0 n[        U 5      nU(       d  [        R                  " SU  S35      eU H  nUR                  5       R	                  S5      n0 nU Hk  nUR	                  SS5      n[        U5      S:w  a  [        R                  " SU SU  S	35      eUS
   R                  5       nUS   R                  5       n	XU'   Mm     SU;  d  SU;  a  [        R                  " SU  S35      eUS   XS   '   M     U$ )zParses a single artifact configuration string.

Args:
  item_string: The string to parse. The string can be in a custom key-value
    format (e.g. 'key1=val1.)

Returns:
  A dictionary of artifact configuration key-value pairs.
r+   z'. Expected format like: 'uri={REGION}-docker.pkg.dev/my-project/my-repo/my-image,buildProject=my-project' or '[uri={REGION}-docker.pkg.dev/my-project/my-repo/my-image,buildProject=my-project]'.,=r)      z Invalid key-value pair format: 'z
' within 'za'. Expected 'uri={REGION}-docker.pkg.dev/my-project/my-repo/my-image or buildProject=my-project'.r   uribuildProjectzz'. Expected format like: --artifact-config=uri={REGION}-docker.pkg.dev/my-project/my-repo/my-image,buildProject=my-project)r3   r   r.   stripr/   len)
item_string
final_dictartifact_configsartifact_configaritfact_config_propsresult_dictpropr2   key	value_strs
             r   ArtifactConfigTyperE   g   s@    
I*(5	

'
'
+K= 9b 	b  *o+11399#>K%jja e	Uq++.tf 5 ))
 	
 !HNNc(.."i"# & K>#D))-k] ;n n  &1%@J5!"+ *. 
r   c           	      4    U R                  SSS[        SSS9  g)z!Creates artifact config argument.z--artifact-configARTIFACT_CONFIG_ITEMr>   appenda  Specifies a single artifact configuration. This flag can be repeated for
multiple configurations.

Each configuration can be provided in a key-value format.

Format examples:
`--artifact-config=uri={REGION}-docker.pkg.dev/my-project/my-repo/my-image,buildProject=my-project`
`--artifact-config=[uri={REGION}-docker.pkg.dev/my-project/my-repo/my-image,buildProject=my-project]`

Supported keys within a configuration:
- `buildProject`: String, e.g., `my-project`
- `uri`: String, e.g., `{REGION}-docker.pkg.dev/my-project/my-repo/my-image`
)r   r   r"   r   r   N)r	   rE   r
   s    r   AddArtifactConfigsArgumentrI      s)    $  r   N)__doc__googlecloudsdk.callioper   r   r   r   r   r%   r3   rE   rI    r   r   <module>rM      s6    7 /	

& /dr   