
                             d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZ ddlmZ dd
lmZ ddlmZ dZdZdZdZej2                   G d dej4                               Zy)zBThe enable command for adding anthos support RBACs to the cluster.    )absolute_import)division)unicode_literalsN)projects_api)client)base)	resources)util)errors)
propertieszTservice-{project_number}@gcp-sa-{instance_name}anthossupport.iam.gserviceaccount.comANTHOS_SUPPORTzgke-fleet-support-accessz7{membership_name}/rbacrolebindings/{rbacrolebinding_id}c                   ,    e Zd ZdZd Zed        Zd Zy)EnablezEnable support access for the specified membership.

  ## EXAMPLES

    To enable support access for membership `my-membership` run:

      $ {command} my-membership

  c                    t        j                  t        j                  |            j                  }t        j                         }|t
        j                  k(  rt        j                  |d      S |t
        j                  k(  rt        j                  |d      S |t
        j                  k(  rt        j                  |d      S t        j                  d      )zGet 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       @lib/surface/container/fleet/memberships/support_access/enable.pyGetAnthosSupportUserzEnable.GetAnthosSupportUser2   s     "%%"":.m  !,,.- '''r (   
$"2"2	2 '''z (   
$"3"3	3 '''{ (   228<<    c                     t        j                  |t        j                  d      t        j                  d      dd       y )NzR          The membership name that you want to enable support access 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
positional)r	   AddMembershipResourceArgtextwrapdedent)clsparsers     r#   ArgszEnable.ArgsN   s?    &&  )  oo '  !
r%   c                 `   t         j                  j                  j                  j	                         }t        j                  |      }| j                  |      }t        j                  |t              }t        j                  | j                               }|j                  |t        |d       S )N)membership_namerbacrolebinding_id)release_track)r   VALUEScoreproject	GetOrFailr	   ParseMembershipArgr$   RESOURCE_NAME_FORMATr   ROLE_BINDING_IDr   FleetClientReleaseTrackCreateMembershipRbacRoleBinding	ROLE_TYPE)r    argsr!   r2   usernamefleet_clients          r#   Runz
Enable.Run\   s    ""''//99;J2248O$$Z0D&&'O ' MD %%D4E4E4GHL77it% %r%   N)__name__
__module____qualname____doc__r$   classmethodr0   rD    r%   r#   r   r   &   s%    =8  	%r%   r   )rH   
__future__r   r   r   r,   +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?   r;   r:   DefaultUniverseOnlyCreateCommandr   rJ   r%   r#   <module>rU      sl    I &  '  D 9 ( @ ; I E *l 	,P  >%T >% >%r%   