
                         r    S 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
\5      rg)z.API library for access context manager levels.    )absolute_import)division)unicode_literals)
list_pager)util)waiter)	resourcesc                   <    \ rS rSrSS jrSS jr     S	S jrSrg)
Client   Nc                     U=(       d    [         R                  " US9U l        U=(       d    U R                  R                  U l        g )N)version)r   	GetClientclientMESSAGES_MODULEmessages)selfr   r   r   s       9lib/googlecloudsdk/api_lib/accesscontextmanager/levels.py__init__Client.__init__   s-    ;DNN7;DK; ; ;DM    c           	          U R                   R                  UR                  5       S9n[        R                  " U R
                  R                  UUSS SS9$ )N)parentpageSizeaccessLevels)limitbatch_size_attribute
batch_sizefield)r   9AccesscontextmanagerAccessPoliciesAccessLevelsListRequestRelativeNamer   YieldFromListr   accessPolicies_accessLevels)r   
policy_refr   reqs       r   ListClient.List#   s\    OO**, 	P 	
 
 ##//' r   c                    U R                   R                  5       n/ nUb  UR                  S5        X'l        Ub  UR                  S5        X7l        UbS  UR                  S5        UR
                  =(       d    U R                   R                  5       Ul        XGR
                  l        UbS  UR                  S5        UR
                  =(       d    U R                   R                  5       Ul        XWR
                  l        UbS  UR                  S5        UR                  =(       d    U R                   R                  5       Ul	        XgR                  l        UR                  5         U R                   n	U	R                  n
U
" UUR                  5       SR                  U5      S9nU R                   R"                  R%                  U5      n[&        R(                  " U R                   R"                  U R                   R*                  U5      n[,        R.                  R1                  UR2                  SS	9n[4        R6                  " XS
R9                  UR;                  5       5      5      $ )aM  Patch an access level.

Args:
  level_ref: resources.Resource, reference to the level to patch
  description: str, description of the level or None if not updating
  title: str, title of the level or None if not updating
  basic_level_combine_function: ZoneTypeValueValuesEnum, combine function
    enum value of the level or None if not updating
  basic_level_conditions: list of Condition, the conditions for a basic
    level or None if not updating
  custom_level_expr: the expression of the Custom level, or none if not
    updating.

Returns:
  AccessLevel, the updated access level
descriptiontitlezbasic.combiningFunctionzbasic.conditionscustom,)accessLevelname
updateMaskzaccesscontextmanager.operations)
collectionz Waiting for PATCH operation [{}])r   AccessLevelappendr)   r*   basic
BasicLevelcombiningFunction
conditionsr+   CustomLevelexprsort:AccesscontextmanagerAccessPoliciesAccessLevelsPatchRequestr!   joinr   r#   Patchr   OperationPoller
operationsr	   REGISTRYParser.   r   WaitForformatName)r   	level_refr)   r*   basic_level_combine_functionbasic_level_conditionscustom_level_exprlevelupdate_maskmrequest_typerequest	operationpolleroperation_refs                  r   r<   Client.Patch2   s   2 MM%%'EK'%!k#/23KK=4==#;#;#=ek&Bkk#)+,KK=4==#;#;#=ek5kk$"\\@T]]%>%>%@el+llAOOL##%88K(G
 77==gFI!!$++"I"I"&++"8"8)EF&&,,#D - FM>>*11-2D2D2FGI Ir   )r   r   )NNN)N)NNNNN)__name__
__module____qualname____firstlineno__r   r&   r<   __static_attributes__ r   r   r   r      s#    <$ #'!>Ir   r   N)__doc__
__future__r   r   r   apitools.base.pyr   +googlecloudsdk.api_lib.accesscontextmanagerr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer	   objectr   rV   r   r   <module>r^      s/    5 &  ' ' < . )SIV SIr   