
                             S r SSKJr  SSKJr  SSKJr  SSK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  SSKJr  SSKJr  SrSrSrSr\R6                   " S S\R8                  5      5       rg)z0Generates YAML for anthos support RBAC policies.    )absolute_import)division)unicode_literalsN)projects_api)client)base)	resources)util)errors)log)
propertieszTservice-{project_number}@gcp-sa-{instance_name}anthossupport.iam.gserviceaccount.comANTHOS_SUPPORTzgke-fleet-support-accessz7{membership_name}/rbacrolebindings/{rbacrolebinding_id}c                   4    \ rS rSrSrS r\S 5       rS rSr	g)GetYaml(   zGenerates YAML for anthos support RBAC policies.

## EXAMPLES

  To generate the YAML for support access RBAC policies with membership
  `my-membership`, run:

    $ {command} my-membership

c                    [         R                  " [        R                  " U5      5      R                  n[
        R                  " 5       nU[
        R                  :X  a  [        R                  USS9$ U[
        R                  :X  a  [        R                  USS9$ U[
        R                  :X  a  [        R                  USS9$ [        R                  " S5      e)zGets P4SA account name for Anthos Support when user not specified.

Args:
  project_id: the project ID of the resource.

Returns:
  The P4SA account name for Anthos Support.
 )project_numberinstance_namezstaging-z	autopush-gkehub)r   Getprojects_utilParseProjectprojectNumberr
   APIEndpointPROD_APIANTHOS_SUPPORT_USERformatSTAGING_APIAUTOPUSH_APIr   UnknownApiEndpointOverrideError)self
project_idr   hub_endpoint_overrides       Blib/surface/container/fleet/memberships/support_access/get_yaml.pyGetAnthosSupportUserGetYaml.GetAnthosSupportUser5   s     "%%"":.m  !,,.- '''r (   
$"2"2	2 '''z (   
$"3"3	3 '''{ (   228<<    c                     [         R                  " U[        R                  " S5      [        R                  " S5      SSS9  UR	                  S[
        [        R                  " S5      S9  g )Nzp            The membership name that you want to generate support access RBAC
            policies for.
        z            The location of the membership resource, e.g. `us-central1`.
            If not specified, defaults to `global`.
        T)membership_helplocation_helpmembership_required
positionalz--rbac-output-filezv            If specified, the generated RBAC policy will be written to the
            designated local file.
        )typehelp)r	   AddMembershipResourceArgtextwrapdedentadd_argumentstr)clsparsers     r%   ArgsGetYaml.ArgsQ   sk    &&  )  oo '  ! __    r(   c                    [         R                  R                  R                  R	                  5       nU R                  U5      n[        R                  [        R                  " U5      [        S9n[        R                  " U R                  5       S9nUR                  U[        US 5      nUR                   (       a9  ["        R$                  R'                  SR                  UR                   5      5        O>["        R$                  R'                  S5        ["        R$                  R'                  S5        [(        R*                  " UR                   (       a  UR                   OSUR,                  SSSS	9  g )
N)membership_namerbacrolebinding_id)release_trackz.Generated RBAC policy is written to file: {} 
zGenerated RBAC policy is: 
z---------------------------------------------
-TF)	overwritebinaryprivate)r   VALUEScoreproject	GetOrFailr&   RESOURCE_NAME_FORMATr   r	   ParseMembershipArgROLE_BINDING_IDr   FleetClientReleaseTrack%GenerateMembershipRbacRoleBindingYaml	ROLE_TYPErbac_output_filesysstdoutwriter   WriteToFileOrStdoutroleBindingsYaml)r"   argsr#   usernamefleet_clientresponses          r%   RunGetYaml.Rung   s   ""''//99;J$$Z0D&&!44T:* ' ,D %%D4E4E4GHLAAit%H 	jjHOO


! " 
jj56	jjGH !%!6!6C!!r(    N)
__name__
__module____qualname____firstlineno____doc__r&   classmethodr7   rW   __static_attributes__rY   r(   r%   r   r   (   s%    	=8  *r(   r   )r^   
__future__r   r   r   rM   r1   +googlecloudsdk.api_lib.cloudresourcemanagerr   &googlecloudsdk.api_lib.container.fleetr   googlecloudsdk.callioper   *googlecloudsdk.command_lib.container.fleetr	   r
   6googlecloudsdk.command_lib.container.fleet.membershipsr   #googlecloudsdk.command_lib.projectsr   googlecloudsdk.corer   r   r   rK   rG   rE   DefaultUniverseOnlyCommandr   rY   r(   r%   <module>rk      sr    7 &  ' 
  D 9 ( @ ; I E # *l 	,P  Wdll W Wr(   