
                             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  G d dej"                        Zy)z8Command for to list all of a project's service accounts.    )absolute_import)division)unicode_literalsN)
list_pager)
exceptions)util)base)iam_util)
propertiesc                   N    e Zd ZdZd ej
                  d      iZed        Zd Z	y)Listz)List all of a project's service accounts.EXAMPLESzd
          To list all service accounts in the current project, run:

            $ {command}
      c                 $   t         j                  j                  |        t         j                  j                  |        | j                  j                  t        j                         | j                  j                  t        j                         y )N)
r	   
ASYNC_FLAGRemoveFromParserPAGE_SIZE_FLAGdisplay_info	AddFormatr
   SERVICE_ACCOUNT_FORMAT
AddUriFuncServiceAccountsUriFunc)parsers    (lib/surface/iam/service_accounts/list.pyArgsz	List.Args-   s\    OO$$V,((0
!!("A"AB
""8#B#BC    c              #     K   |j                   $|j                   dk  rt        j                  d      t        j                  j
                  j                  j                  d      }t        j                         \  }}t        j                  |j                  |j                  t        j                  |            d|j                   d      D ]   }t!        |j"                        |_        | " y w)	N   zLimit size must be >=1T)required)nameaccountspageSize)fieldlimitbatch_size_attribute)r#   r   InvalidArgumentExceptionr   VALUEScoreprojectGetr   GetClientAndMessagesr   YieldFromListprojects_serviceAccounts%IamProjectsServiceAccountsListRequestr
   ProjectToProjectResourceNamebooldisabled)selfargsr(   clientmessagesitems         r   RunzList.Run4   s     zz	a112JKK$$,,00$0?G002FH((''6666w? 	7 	Ajj') 4==)dmj)s   C1C3N)
__name__
__module____qualname____doc__textwrapdedentdetailed_helpstaticmethodr   r6    r   r   r   r   !   s?    1 
(// 
 - D Dr   r   )r:   
__future__r   r   r   r;   apitools.base.pyr   googlecloudsdk.api_lib.iamr   r   googlecloudsdk.callioper	   googlecloudsdk.command_lib.iamr
   googlecloudsdk.corer   ListCommandr   r?   r   r   <module>rG      s:     ? &  '  ' 1 + ( 3 *"4 "r   