
    H                     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)z0API library for access context manager policies.    )absolute_import)division)unicode_literals)
list_pager)util)waiter)	resourcesc                   6    \ rS rSrSrSS jrS	S jrS	S jrSrg)
Client   z:Client for Access Context Manager Access Policies service.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       ;lib/googlecloudsdk/api_lib/accesscontextmanager/policies.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accessPolicies)limitbatch_size_attribute
batch_sizefield)r   -AccesscontextmanagerAccessPoliciesListRequestRelativeNamer   YieldFromListr   r   )r   organization_refr   reqs       r   ListClient.List$   sV    
--
E
E,,. F 0C##""C'   r   c                    U R                   R                  5       n/ nUb  UR                  S5        X#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                  5      n	[        R                  " U R                  R                  U R                  R                  U5      n	[         R"                  R%                  UR&                  SS9n
[        R(                  " XSR+                  U
R-                  5       5      5      $ )zPatch an access policy.

Args:
  policy_ref: resources.Resource, reference to the policy to patch
  title: str, title of the policy or None if not updating

Returns:
  AccessPolicy, the updated access policy
title,)accessPolicyname
updateMaskzaccesscontextmanager.operations)
collectionz Waiting for PATCH operation [{}])r   AccessPolicyappendr(   sort.AccesscontextmanagerAccessPoliciesPatchRequestr!   joinr   r   Patchr   CloudOperationPoller
operationsr   OperationPollerr	   REGISTRYParser+   WaitForformatName)r   
policy_refr(   policyupdate_maskmrequest_typerequest	operationpolleroperation_refs              r   r3   Client.Patch.   s>    ]]'')FK!lACCL$$&88K(G
 **009I(()C)C)-)?)?AF!!""DKK$:$:JHF&&,,#D - FM>>*11-2D2D2FGI Ir   )r   r   )NNN)N)	__name__
__module____qualname____firstlineno____doc__r   r%   r3   __static_attributes__ r   r   r   r      s    B< "Ir   r   N)rJ   
__future__r   r   r   apitools.base.pyr   +googlecloudsdk.api_lib.accesscontextmanagerr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer	   objectr   rL   r   r   <module>rS      s-    7 &  ' ' < . )3IV 3Ir   