
    8                        S r SSK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  \R                  R                   S
\R                  R"                  S\R                  R$                  S0r\R                  R                   S\R                  R"                  S\R                  R$                  S0r\R                  R$                  4S jr\R                  R                   4S jrS\R                  4S jr\R                  R$                  4S\R0                  4S jjr\R                  R                   4S\R4                  4S jjr\R                  R$                  4S jrS>S jrS rS>S jrS\R                  R                   4S jr S r!S r"S>S jr#S>S  jr$S!S\R                  R                   4S\RJ                  4S" jjr&S!S\R                  R                   4S\'4S# jjr(S\R                  R                   4S$ jr)S>S% jr*\R                  R                   4S& jr+\R                  R                   4S' jr,\R                  R                   4S( jr-\R                  R                   4S) jr.\R                  R                   4S* jr/\R                  R                   4S+ jr0\R                  R                   4S, jr1\R                  R                   4S- jr2\R                  R                   4S. jr3\R                  R                   4S/ jr4S\R                  R$                  4S0 jr5S\R                  R$                  4S1 jr6S>S2 jr7S3\Rp                  S\RJ                  4S4 jr9S5\Rt                  S\RJ                  4S6 jr;S5\Rt                  S\'4S7 jr<S5\Rt                  4S8 jr=S5\Rt                  S\'4S9 jr>S5\Rt                  S\RJ                  4S: jr?S5\Rt                  S\'4S; jr@S5\Rt                  4S< jrAS5\Rt                  S\'4S= jrBg)?zFleet API utils.    N)types)apis)base)parser_extensions)
exceptions)	resources)gkehub_v1alpha_messagesv1alphav1betav1v2alphav2betav2c                 >    [         R                  " S[        U    5      $ Ngkehub)r   GetMessagesModuleVERSION_MAPrelease_tracks    2lib/googlecloudsdk/api_lib/container/fleet/util.pyr   r   *   s    			+m*D	EE    c                 >    [         R                  " S[        U    5      $ r   )r   r   V2_VERSION_MAPr   s    r   GetV2MessagesModuler   .   s    			.*G	HHr   r   c                     U [         R                  R                  :X  a  [        $ [	        SR                  U R                  5      5      e)ah  Dynamically load Fleet message module based on command track.

Explicitly import message to enable type hint in Cider-V since
`apis.GetMessagesModule()` cannot derive type to the specific Python module.

Args:
  release_track: Determines the generated API message module to be returned.

Returns:
  An API message module that corresponds to the release track.
z0Fleet command has not been promoted to {} track.)r   ReleaseTrackALPHAalpha_messagesNotImplementedErrorformatnamer   s    r   FleetMessageModuler#   2   sB     d''---8??


	 r   returnc                 >    [         R                  " S[        U    5      $ r   )r   GetClientInstancer   r   s    r   r&   r&   H   s     
		+m*D	EEr   c                 >    [         R                  " S[        U    5      $ r   )r   r&   r   r   s    r   GetV2ClientInstancer(   N   s     
		.*G	HHr   c                 >    [         R                  " S[        U    5      $ r   )r   GetClientClassr   r   s    r   r*   r*   T   s    			X{='A	BBr   globalc                 \    [         R                  R                  SU US9R                  5       $ )Ngkehub.projects.locations
projectsIdlocationsIdr   REGISTRYCreateRelativeName)projectlocations     r   LocationResourceNamer7   X   s2    				"	"! 
# 
 LN	r   c                     [         R                  " SU 5      nU(       a  UR                  S5      $ [        R                  " SR                  U 5      5      e)N+projects/.*/locations/(.*)/memberships/(.*)   $Invalid membership resource name: {}researchgroupr   Errorr!   	full_namematchess     r   MembershipLocationrD   a   sF    IICYO'==,33I>	 r   c                 ^    [         R                  R                  SU UUS9R                  5       $ )N%gkehub.projects.locations.membershipsr/   r0   membershipsIdr1   )r5   
membershipr6   s      r   MembershipResourceNamerJ   j   s5    				"	"-	 
# 

 LNr   c                 v    [         R                  R                  S U UUUS.S[        U   S9R	                  5       $ )N)r/   r0   rH   
featuresIdz.gkehub.projects.locations.memberships.featureslineparams
collectionapi_version)r   r2   Parser   r4   )r5   rI   featurer6   r   s        r   MembershipFeatureResourceNamerT   t   sM     
			!	!!%	 B / 
" 
 LNr   c                     [         R                  " SU 5      nU(       a&  UR                  S5      S-   UR                  S5      -   $ [        R                  " SR                  U 5      5      e)Nr9   r:   /   r;   r<   rA   s     r   MembershipPartialNamerX      sY    IICYO'==c!GMM!$444,33I>	 r   c                 Z    [         R                  R                  U SS9R                  5       $ )NrF   rP   )r   r2   ParseRelativeNameName)rB   s    r   MembershipShortnamer]      s-    				-	-C 
. 
DFr   c                 ^    [         R                  R                  SU UUS9R                  5       $ )Nz"gkehub.projects.locations.features)r/   r0   rL   r1   )r5   rS   r6   s      r   FeatureResourceNamer_      s5    				"	"*	 
# 

 LNr   c                 ^    [         R                  R                  SU UUS9R                  5       $ )N$gkehub.projects.locations.operations)r/   r0   operationsIdr1   )r5   	operationr6   s      r   OperationResourceNamerd      s5    				"	",	 
# 

 LNr   defaultc                 X    [         R                  R                  S U UUS.S[        U   S9$ )N)r/   r0   fleetsIdz gkehub.projects.locations.fleetsrM   )r   r2   rR   r   r5   fleetr6   r   s       r   FleetRefrj      s@     
			!	!!
 4m, 
" 	
 	r   c                 6    [        XX#5      R                  5       $ N)rj   r4   rh   s       r   FleetResourceNamerm      s     
'(	:	G	G	IIr   c                 r    [         R                  R                  S U US.S[        U   S9R	                  5       $ )Nr.   r-   rM   r   r2   rR   r   r4   )r5   r6   r   s      r   FleetParentNamerp      sF     
			!	!! -m, 
" 
 LNr   c                 $    SR                  X5      $ )Nzorganizations/{0}/locations/{1})r!   )organizationr6   s     r   FleetOrgParentNamers      s    	*	1	1,	IIr   c                 r    [         R                  R                  S U SS.S[        U   S9R	                  5       $ Nr+   r.   r-   rM   ro   r5   r   s     r   ScopeParentNamerw      D    				!	!! -m, 
" 
 LNr   c                 r    [         R                  R                  S U SS.S[        U   S9R	                  5       $ ru   ro   rv   s     r   NamespaceParentNamerz      rx   r   c                 t    [         R                  R                  S U SUS.S[        U   S9R	                  5       $ Nr+   )r/   r0   namespacesIdz$gkehub.projects.locations.namespacesrM   ro   )r5   r"   r   s      r   NamespaceResourceNamer~      sG    				!	!!
 8m, 
" 	
 LN	r   c                 t    [         R                  R                  S U SUS.S[        U   S9R	                  5       $ Nr+   r/   r0   scopesId gkehub.projects.locations.scopesrM   ro   r5   scoper   s      r   ScopeNamespaceParentNamer     I     
			!	!!
 4m, 
" 	
 LN	r   c                 v    [         R                  R                  S U SUUS.S[        U   S9R	                  5       $ )Nr+   )r/   r0   r   r}   z+gkehub.projects.locations.scopes.namespacesrM   ro   r5   r   r"   r   s       r   ScopeNamespaceResourceNamer     sL     
			!	!!	 ?m, 
" 

 LN
r   c                 t    [         R                  R                  S U SUS.S[        U   S9R	                  5       $ r|   ro   )r5   	namespacer   s      r   RBACRoleBindingParentNamer   %  sI     
			!	!!#
 8m, 
" 	
 LN	r   c                 t    [         R                  R                  S U SUS.S[        U   S9R	                  5       $ r   ro   r   s      r   ScopeRBACRoleBindingParentNamer   5  r   r   c                 v    [         R                  R                  S U SUUS.S[        U   S9R	                  5       $ )Nr+   )r/   r0   r}   rbacrolebindingsIdz5gkehub.projects.locations.namespaces.rbacrolebindingsrM   ro   )r5   r   r"   r   s       r   RBACRoleBindingResourceNamer   E  sM     
			!	!!# $	 Im, 
" 

 LN
r   c                 v    [         R                  R                  S U SUUS.S[        U   S9R	                  5       $ )Nr+   )r/   r0   r   r   z1gkehub.projects.locations.scopes.rbacrolebindingsrM   ro   r   s       r    ScopeRBACRoleBindingResourceNamer   V  sM     
			!	!! $	 Em, 
" 

 LN
r   c                 v    [         R                  R                  SU UUUS.S[        U   S9R	                  5       $ )aq  Parses a Membership RBAC Role Binding resource.

Args:
  project: the full project ID or number for the resource.
  location: the location of the resource.
  membership: the parent membership of the resource.
  name: the resource name for the role binding.
  release_track: the API version for the resource parsing.

Returns:
  A Membership RBAC Role Binding resource.
N)r/   r0   rH   r   z6gkehub.projects.locations.memberships.rbacrolebindingsrM   ro   )r5   r6   rI   r"   r   s        r   %MembershipRBACRoleBindingResourceNamer   g  sM      
			!	!!% $	 Jm, 
" 

 LN
r   c                 v    [         R                  R                  S U UUUS.S[        U   S9R	                  5       $ )N)r/   r0   rH   
bindingsIdz.gkehub.projects.locations.memberships.bindingsrM   ro   )r5   r"   rI   r6   r   s        r   MembershipBindingResourceNamer     sM     
			!	!!%	 Bm, 
" 

 LN
r   c                 t    [         R                  R                  S U UUS.S[        U   S9R	                  5       $ )NrG   rF   rM   ro   )r5   rI   r6   r   s       r   MembershipBindingParentNamer     sI     
			!	!!%
 9m, 
" 	
 LN	r   c                 ^    [         R                  R                  SU UUS9R                  5       $ )Nr   r   r1   )r5   r   r6   s      r   ScopeResourceNamer     s5    				"	"(	 
# 

 LNr   rc   c                 R    [         R                  R                  U R                  SS9$ )z6Parses a gkehub Operation reference from an operation.ra   rZ   )r   r2   r[   r"   )rc   s    r   OperationRefr     s*    				-	-nn!G 
. 
 r   argsc                     [        U R                  SS 5      (       a$  U R                  R                  R                  5       $ g )Nrollout)getattrCONCEPTSr   rR   r   s    r   
RolloutRefr     s3    T]]It,,==  &&(( -r   c                 H    [        U 5      nU(       a  UR                  5       $ g rl   )r   r4   r   rollout_refs     r   RolloutNamer     s!    4 +##%%	r   c                 d    [        U 5      nU(       a  UR                  5       R                  5       $ g rl   )r   Parentr4   r   s     r   RolloutParentNamer     s*    4 +,,..	r   c                 H    [        U 5      nU(       a  UR                  5       $ g rl   )r   r\   r   s     r   	RolloutIdr     s!    4 +	r   c                     [        U R                  SS 5      (       a$  U R                  R                  R                  5       $ g )Nrolloutsequence)r   r   r   rR   r   s    r   RolloutSequenceRefr     s4     T]]-t44==((..00	r   c                 H    [        U 5      nU(       a  UR                  5       $ g rl   )r   r4   r   rollout_sequence_refs     r   RolloutSequenceNamer     s"    +D1,,..	r   c                 d    [        U 5      nU(       a  UR                  5       R                  5       $ g rl   )r   r   r4   r   s     r   RolloutSequenceParentNamer     s+    +D1&&(5577	r   c                 H    [        U 5      nU(       a  UR                  5       $ g rl   )r   r\   r   s     r   RolloutSequenceIdr     s"    +D1$$&&	r   )r+   )C__doc__r=   &googlecloudsdk.api_lib.container.fleetr   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   r   googlecloudsdk.corer   r   4googlecloudsdk.generated_clients.apis.gkehub.v1alphar	   r   r   r   BETAGAr   r   r   r   r#   TrackClientr&   V2TrackClientr(   r*   r7   rD   rJ   rT   rX   r]   r_   rd   Resourcerj   strrm   rp   rs   rw   rz   r~   r   r   r   r   r   r   r   r   r   r   	Operationr   	Namespacer   r   r   r   r   r   r   r    r   r   <module>r      s    
 8 , ( 5 * ) j 	YH$ 	YH$ %)$5$5$8$8 F '+&7&7&=&= Id&7&7 . ##&&F
F ##))I
I "&!2!2!5!5 C ##)), ##))	
 ( ##))	J
 	J d.?.?.E.EJ ,0+<+<+B+B 
 04/@/@/F/F 
 8<7H7H7N7N  #'"3"3"9"9" )-(9(9(?(?$ '+&7&7&=&=" #'"3"3"9"9" -1,=,=,C,C$ )-(9(9(?(?$ 8<7H7H7N7NB ##&&, #+$:K:K:N:N N44 9K9K )&00 )Y5G5G )
'11 c -77 %// C 

%
%/99 c $5$?$? -77 C r   