
                             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 dd	l
mZ d
Z G d de      Zy)z=API client library for Cloud IAM Simulator Replay Operations.    )absolute_import)division)unicode_literals)
list_pager)apis)waiter)
properties)	resourcesi6 c                   H    e Zd ZdZd
dZed        Zd Zd Zd Z	ddZ
d	 Zy)Clientz5API client for Cloud IAM Simulator Replay Operations.Nc                     || _         || _        | j                  j                  | _        |xs |j                  | _        y N)_api_version_client
operations_serviceMESSAGES_MODULE	_messages)selfapi_versionclientmessagess       6lib/googlecloudsdk/api_lib/iam/simulator/operations.py__init__zClient.__init__"   s4    #DDLLL++DM7!7!7DN    c                 <     | |t        j                  d|            S )Npolicysimulator)r   GetClientInstance)clsversions     r   FromApiVersionzClient.FromApiVersion(   s    w../@'JKKr   c                 $    |j                  d      S )Nzoperations/)
startswithr   operation_names     r   _IsLegacyOperationNamezClient._IsLegacyOperationName-   s    $$]33r   c                 *    |j                  d      d   S )N/)splitr$   s     r   GetReplayIdzClient.GetReplayId0   s    $R((r   c                     | j                   j                  |j                               }| j                  j	                  |      S )N)name)r   #PolicysimulatorOperationsGetRequestRelativeNamer   Get)r   operation_refrequests      r   r0   z
Client.Get3   s=    nn@@'') A +G==W%%r   c                     | j                   j                  |j                         |      }t        j                  | j
                  |||dd      S )N)r-   filterr   pageSize)
batch_sizelimitfieldbatch_size_attribute)r   $PolicysimulatorOperationsListRequestr/   r   YieldFromListr   )r   
parent_refr7   	page_sizelist_filterr2   s         r   ListzClient.List8   sS    nnAA$$&{ B <G##') )r   c                 .   t         j                  j                         }|j                  d| j                         | j                  |j                        r|j                  |j                  d      }ng|j                  |j                  t        j                  j                  j                  j                  d| j                  |j                        dd      }t        j                  | j                         }t        j"                  |||t$              S )	z#Wait for the operation to complete.r   zpolicysimulator.operations)
collectionglobal)
projectsIdlocationsId	replaysIdz5policysimulator.projects.locations.replays.operations)paramsrA   )wait_ceiling_ms)r
   REGISTRYCloneRegisterApiByNamer   r&   r-   Parser	   VALUEScoreproject	GetOrFailr+   r   CloudOperationPollerNoResourcesr   WaitFor_MAX_WAIT_TIME_MS)r   	operationmessageregistryr1   pollers         r   WaitForOperationzClient.WaitForOperationC   s    !!'')H0$2C2CD""9>>2nnY^^0L % Nm nn
..&--22::DD%++INN;
 M % Nm 33DMMBF>>w8IK Kr   r   )NNN)__name__
__module____qualname____doc__r   classmethodr!   r&   r+   r0   r?   rW    r   r   r   r      s:    =8 L L4)&
	)Kr   r   N)r[   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.corer	   r
   rR   objectr   r]   r   r   <module>rc      s7    D &  ' ' , . * )" 7KV 7Kr   