
                             S r SSKJr  SSKJr  SSKJ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\
R                  5      rg)z)Command for listing service account keys.    )absolute_import)division)unicode_literalsN)util)arg_parsers)base)iam_util)timesc                   V    \ rS rSrSrS\R                  " S5      0r\S 5       r	S r
Srg)	List   zList the keys for a service account.

If the service account does not exist, this command returns a
`PERMISSION_DENIED` error.
EXAMPLESa"  
          To list all user-managed keys created before noon on July 19th, 2015
          (to perform key rotation, for example), run:

            $ {command} --iam-account=my-iam-account@my-project.iam.gserviceaccount.com --managed-by=user --created-before=2015-07-19T12:00:00Z
          c                 X   U R                  S/ SQSSS9  U R                  S[        R                  R                  SS9  U R                  S	S
[        R
                  " 5       SS9  U R                  R                  [        R                  5        [        R                  R                  U 5        g )Nz--managed-by)usersystemanyr   zThe types of keys to list.)choicesdefaulthelpz--created-beforezReturn only keys created before the specified time. Common time formats are accepted. This is equivalent to --filter="validAfterTime<DATE_TIME". See $ gcloud topic datetimes for information on time formats.)typer   z--iam-accountTz*A textual name to display for the account.)requiredr   r   )add_argumentr   DatetimeParser	   GetIamAccountFormatValidatordisplay_info	AddFormatSERVICE_ACCOUNT_KEY_FORMATr   URI_FLAGRemoveFromParser)parsers    -lib/surface/iam/service_accounts/keys/list.pyArgs	List.Args/   s    
 9 %9  ;
 !!''J  L !%%BBDI  K !!("E"EFMM""6*    c                    [         R                  " 5       u  p#UR                  R                  UR	                  [
        R                  " UR                  5      [
        R                  " UR                  5      S95      nUR                  nUR                  (       aD  UR                  nU Vs/ s H+  n[        R                  " UR                  5      U:  d  M)  UPM-     nnU$ s  snf )N)namekeyTypes)r   GetClientAndMessagesprojects_serviceAccounts_keysr   )IamProjectsServiceAccountsKeysListRequestr	   EmailToAccountResourceNameiam_accountManagedByFromString
managed_bykeyscreated_beforer
   ParseDateTimevalidAfterTime)selfargsclientmessagesresultr0   tskeys           r"   RunList.RunE   s    002F1166::44T5E5EF11$//B 	; 	DEF
 ;;Db#!4!4S5G5G!H2!M#   K	s   *(C C  N)__name__
__module____qualname____firstlineno____doc__textwrapdedentdetailed_helpstaticmethodr#   r;   __static_attributes__r=   r%   r"   r   r      s<     (// # - + +*r%   r   )rB   
__future__r   r   r   rC   googlecloudsdk.api_lib.iamr   googlecloudsdk.callioper   r   googlecloudsdk.command_lib.iamr	   googlecloudsdk.core.utilr
   ListCommandr   r=   r%   r"   <module>rN      s7     0 &  '  + / ( 3 *44 4r%   