
    H                     r    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  G d	 d
e      Zy)z0API library for access context manager policies.    )absolute_import)division)unicode_literals)
list_pager)util)waiter)	resourcesc                   (    e Zd ZdZddZddZddZy)Clientz:Client for Access Context Manager Access Policies service.Nc                     |xs t        j                  |      | _        |xs | j                  j                  | _        y )N)version)r   	GetClientclientMESSAGES_MODULEmessages)selfr   r   r   s       ;lib/googlecloudsdk/api_lib/accesscontextmanager/policies.py__init__zClient.__init__    s-    ;DNN7;DK; ; ;DM    c                     | j                   j                  |j                               }t        j                  | j
                  j                  ||dd d      S )N)parentpageSizeaccessPolicies)limitbatch_size_attribute
batch_sizefield)r   -AccesscontextmanagerAccessPoliciesListRequestRelativeNamer   YieldFromListr   r   )r   organization_refr   reqs       r   ListzClient.List$   sV    
--
E
E,,. F 0C##""C'   r   c                    | j                   j                         }g }||j                  d       ||_        |j	                          | j                   }|j
                  } |||j                         dj                  |            }| j                  j                  j                  |      }t        j                  | j                  j                  | j                  j                        }	t        j                  | j                  j                  | j                  j                  |      }	t         j"                  j%                  |j&                  d      }
t        j(                  |	|
dj+                  |
j-                                     S )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   r0   zClient.Patch.   sB    ]]'')FK!fl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   )NNN)N)__name__
__module____qualname____doc__r   r#   r0    r   r   r   r      s    B< "Ir   r   N)rE   
__future__r   r   r   apitools.base.pyr   +googlecloudsdk.api_lib.accesscontextmanagerr   googlecloudsdk.api_lib.utilr   googlecloudsdk.corer	   objectr   rF   r   r   <module>rM      s-    7 &  ' ' < . )3IV 3Ir   