
    	                         d 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  ej                  ej                  j                        ej                    G d	 d
ej"                                      Zy)z@Command to set service account email to zonal instance settings.    )absolute_import)division)unicode_literals)base_classes)base)flags)
propertiesc                   .    e Zd ZdZddiZed        Zd Zy)SetServiceAccountz/Set service account in zonal instance settings.EXAMPLESa  
        To update the instance settings in the zone called ``us-central1-a''
        in the project ``my-gcp-project'' with service account email ``example@serviceaccount.com'', run:

          $ {command} example@serviceaccount.com --zone=us-central1-a --project=my-gcp-project
      c                 .    t        j                  |        y )N)r   AddServiceAccountFlags)parsers    <lib/surface/compute/instance_settings/set_service_account.pyArgszSetServiceAccount.Args'   s    	  (    c           	         t        j                  | j                               }|j                  }|j                  j
                  }|j                  j                  t        j                  j                  j                  j                         |j                        }|j                  |d|fg      d   j                  }|j                  j!                  |j                  j#                  t%        |dd       |      t        j                  j                  j                  j                         d|j                        }|j                  |d|fgd	
      d   S )N)projectzoneGetr   SERVICE_ACCOUNT_EMAIL)emailfingerprintr   )instanceSettingsr   
updateMaskr   PatchT)no_followup)r   ComputeApiHolderReleaseTrackclientapitools_clientr   messages!ComputeInstanceSettingsGetRequestr	   VALUEScorer   	GetOrFailr   MakeRequestsr   #ComputeInstanceSettingsPatchRequestInstanceSettingsgetattr)selfargsholderr    serviceget_requestr   requests           r   RunzSetServiceAccount.Run+   s@   **4+<+<+>?F]]F$$55G//CC!!&&..88: D K %%'D&EF	k  ooAA99$ 7># : 
 !!&&..88:YY B G 
7G	$%   	 	r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr   r1    r   r   r   r      s/     8  
 - ) )	r   r   N)r5   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   4googlecloudsdk.command_lib.compute.instance_settingsr   googlecloudsdk.corer	   ReleaseTracksr   ALPHAHiddenUpdateCommandr   r8   r   r   <module>rB      sf    G &  ' 7 ( F * D%%++,%	** %	  -%	r   