
                            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	  \R                  R                  S\R                  R                  S	0r\R                  R                  4S
 jr\R                  R                  4S jrS r\R                  R                  4S jrS r\R                  R                  4S jr\R                  R                  4S jrS rS rS rS rS rS rS rS rS rg)zUtil for Apphub Cloud SDK.    )apis)waiter)base)
exceptions)
properties)	resourcesv1alphav1c                 Z    [         R                  U 5      n[        R                  " SU5      $ Napphub)VERSION_MAPgetr   GetMessagesModulerelease_trackapi_versions     *lib/googlecloudsdk/api_lib/apphub/utils.pyr   r   !   #    .+			+	66    c                 Z    [         R                  U 5      n[        R                  " SU5      $ r   )r   r   r   GetClientInstancer   s     r   r   r   &   r   r   c                 "    U (       a  U S-  n X-   $ )N, )update_mask
field_names     r   AddToUpdateMaskr   +   s    3K		!!r   c                     [         R                  U5      n[        R                  " 5       R	                  U R
                  SUS9$ )zKConverts an Operation to a Resource that can be used with `waiter.WaitFor`.z$apphub.projects.locations.operations)r   )r   r   r   RegistryParseRelativeNamename)	operationr   r   s      r   GetOperationResourcer$   1   s>    .+					/	/nn, 
0 
 r   c                 H    [         R                  " U [        U5      UUS-  S9$ )Ni  )max_wait_ms)r   WaitForr$   )pollerr#   messagemax_wait_secs       r   WaitForOperationr+   ;   s)    	9%%	
 r   c                 ^   [        U5      R                  5       nU R                  (       aI  [        U5      R                  [        U5      R                  R	                  U R                  5      S9Ul        U R                  (       aI  [        U5      R                  [        U5      R                  R	                  U R                  5      S9Ul        U R                  =(       d    /  H  n[        U5      R                  5       nUR                  SS5      Ul        UR                  SS5      (       a  UR                  SS5      Ul        U[        R                  R                   :X  aC  UR                  SS5      (       a,  [        U5      R#                  UR                  S5      S9Ul        UR&                  R)                  U5        M     U R*                  =(       d    /  H  n[        U5      R                  5       nUR                  SS5      Ul        UR                  SS5      (       a  UR                  SS5      Ul        U[        R                  R                   :X  aC  UR                  SS5      (       a,  [        U5      R#                  UR                  S5      S9Ul        UR,                  R)                  U5        M     U R.                  =(       d    /  H  n[        U5      R                  5       nUR                  SS5      Ul        UR                  S5      (       a  UR                  S5      Ul        U[        R                  R                   :X  aB  UR                  S5      (       a,  [        U5      R#                  UR                  S5      S9Ul        UR0                  R)                  U5        M     U$ )zPopulate attirbutes from args.)typeemailNzdisplay-namezchannel-uri)uri)r   
Attributesenvironment_typeEnvironmentTypeValueValuesEnumenvironmentcriticality_typeCriticalitycriticalitybusiness_ownersContactInfor   r.   displayNamer   ReleaseTrackALPHAChannelchannelbusinessOwnersappenddeveloper_ownersdeveloperOwnersoperator_ownersoperatorOwners)	argsr   
attributesb_ownerbusiness_ownerd_ownerdeveloper_ownero_owneroperator_owners	            r   PopulateAttributesrM   D   s    !/::<*	.}=II}-99MM!!
 J J 
.}=II}-99MM!!
 J J %%++g&}5AACN";;w5N{{>4((#*;;~t#Dn ))///	]D	)	)!2=!A!I!IM* "J "
 $$^4 , &&,",g'6BBDO#KK6O{{>4(($+KK$Eo!))///	]D	)	)"3M"B"J"JM* #K #
 %%o6 - %%++g&}5AACN";;w5N{{>""#*;;~#>n ))///	]	#	#!2=!A!I!IM* "J "
 $$^4 , 
r   c                    ^ ^ U U4S jnU$ )z5Returns a function which turns a resource into a uri.c                    > [         R                  T5      n[        R                  " 5       R	                  U R
                  TUS9nUR                  5       $ )N)
collectionr   )r   r   r   r    r!   r"   SelfLink)resourcer   resultrP   r   s      r   _GetUriMakeGetUriFunc.<locals>._GetUri   sI    //-0K!33*+ 4 F ??r   r   )rP   r   rT   s   `` r   MakeGetUriFuncrV   }   s     
.r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )z$Returns a service project reference.zservice projectz%service project id must be non-empty.)CONCEPTSservice_projectParseNamer   InvalidArgumentException)rE   service_project_refs     r   GetServiceProjectRefr^      sK    55;;=		!	!	#	#

-
-B  
r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )zReturns a operation reference.r#   zoperation id must be non-empty.)rX   r#   rZ   r[   r   r\   )rE   operation_refs     r   GetOperationRefra      sJ    --))//1-					

-
-6  
r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )zReturns a location reference.locationzlocation id must be non-empty.)rX   rc   rZ   r[   r   r\   )rE   location_refs     r   GetLocationRefre      J    ''--/,					

-
-4  
r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )z(Returns a discovered workload reference.zdiscovered workloadz)discovered workload id must be non-empty.)rX   discovered_workloadrZ   r[   r   r\   )rE   discovered_workload_refs     r   GetDiscoveredWorkloadRefrj      sK     MM==CCE	 	%	%	'	'

-
-J  
! r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )z'Returns a discovered service reference.zdiscovered servicez(discovered service id must be non-empty.)rX   discovered_servicerZ   r[   r   r\   )rE   discovered_service_refs     r   GetDiscoveredServiceRefrn      sK    ==;;AAC		$	$	&	&

-
-H  
 r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )z Returns a application reference.applicationz!application id must be non-empty.)rX   rp   rZ   r[   r   r\   )rE   app_refs     r   GetApplicationRefrr      sE    MM%%++-'	

-
-:  
.r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )z)Returns a application workload reference.workloadzworkload id must be non-empty.)rX   rt   rZ   r[   r   r\   )rE   workload_refs     r   GetApplicationWorkloadRefrv      rf   r   c                     U R                   R                  R                  5       nUR                  5       (       d  [        R
                  " SS5      eU$ )z(Returns a application service reference.servicezservice id must be non-empty.)rX   rx   rZ   r[   r   r\   )rE   service_refs     r   GetApplicationServiceRefrz      sJ    %%++-+					

-
-2  
r   c                      [         R                  R                  [        R                  R
                  R                  R                  5       SS9$ )zReturns a project reference.zapphub.projects)rP   )r   REGISTRYrZ   r   VALUEScoreproject	GetOrFailr   r   r   GetProjectRefr      sA    				!	!$$..0" 
" 
 r   N)__doc__googlecloudsdk.api_lib.utilr   r   googlecloudsdk.callioper   r   googlecloudsdk.corer   r   r;   r<   GAr   r   r   r   r$   r+   rM   rV   r^   ra   re   rj   rn   rr   rv   rz   r   r   r   r   <module>r      s    ! - . ( . * ) 	Y$ %)$5$5$;$; 7
 %)$5$5$;$; 7
" 372C2C2I2I  ,0+<+<+B+B 6r .2->->-D-D 
! r   