
    !                     V    d Z ddlmZ ddlmZ ddlmZ  G d dej                        Z	y)z,Generated client library for iam version v2.    )absolute_import)base_api)iam_v2_messagesc                        e Zd ZdZeZdZdZdZdgZ	dZ
dZdZd	Zd ZdZd
Z	 	 	 	 	 d fd	Z G d dej&                        Z G d dej&                        Z xZS )IamV2z4Generated client library for service iam version v2.zhttps://iam.googleapis.com/z https://iam.mtls.googleapis.com/iamz.https://www.googleapis.com/auth/cloud-platformv2	CLIENT_IDCLIENT_SECRETzgoogle-cloud-sdkNc                     |xs | j                   }t        t        |   |||||||||	|
|       | j	                  |       | _        | j                  |       | _        y)zCreate a new iam handle.)
credentialsget_credentialshttpmodellog_requestlog_responsecredentials_argsdefault_global_paramsadditional_http_headersresponse_encodingN)BASE_URLsuperr   __init__PoliciesOperationsServicepolicies_operationsPoliciesServicepolicies)selfurlr   r   r   r   r   r   r   r   r   r   	__class__s               Alib/googlecloudsdk/generated_clients/apis/iam/v2/iam_v2_client.pyr   zIamV2.__init__   sk     
C	%'d%l)3 7+   -  $==dCD((.DM    c                   >     e Zd ZdZdZ fdZddZd e_         xZS )IamV2.PoliciesOperationsServicez3Service class for the policies_operations resource.r   c                 N    t         t        j                  |   |       i | _        y N)r   r   r   r   _upload_configsr   clientr    s     r!   r   z(IamV2.PoliciesOperationsService.__init__2   s"    E++T;FCdr"   c                 L    | j                  d      }| j                  |||      S )a  Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.

      Args:
        request: (IamPoliciesOperationsGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (GoogleLongrunningOperation) The response message.
      Getglobal_paramsGetMethodConfig
_RunMethodr   requestr-   configs       r!   r+   z#IamV2.PoliciesOperationsService.Get7   1     ##E*f__
'  8 8r"   c                  F    t        j                  ddddgdgg ddddd	
      S )NzNv2/policies/{policiesId}/{policiesId1}/{policiesId2}/operations/{operationsId}GETziam.policies.operations.getname
v2/{+name} IamPoliciesOperationsGetRequestGoogleLongrunningOperationF	flat_pathhttp_method	method_idordered_paramspath_paramsquery_paramsrelative_pathrequest_fieldrequest_type_nameresponse_type_namesupports_downloadr   ApiMethodInfo r"   r!   <lambda>z(IamV2.PoliciesOperationsService.<lambda>D   s4     6 6b/xH";7!r"   r&   )	__name__
__module____qualname____doc___NAMEr   r+   method_config__classcell__r    s   @r!   r   r$   -   s"    =!E
8Cr"   r   c                        e Zd ZdZdZ fdZddZd e_        ddZd e_        ddZ	d	 e	_        dd
Z
d e
_        ddZd e_         xZS )IamV2.PoliciesServicez(Service class for the policies resource.r   c                 N    t         t        j                  |   |       i | _        y r&   )r   r   r   r   r'   r(   s     r!   r   zIamV2.PoliciesService.__init__W   s"    E!!41&9dr"   c                 L    | j                  d      }| j                  |||      S )a   Creates a policy.

      Args:
        request: (IamPoliciesCreatePolicyRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (GoogleLongrunningOperation) The response message.
      CreatePolicyr,   r.   r1   s       r!   rX   z"IamV2.PoliciesService.CreatePolicy\   1     ##N3f__
'  8 8r"   c                  H    t        j                  ddddgdgdgdddd	d
      S )N&v2/policies/{policiesId}/{policiesId1}POSTziam.policies.createPolicyparentpolicyIdv2/{+parent}googleIamV2PolicyIamPoliciesCreatePolicyRequestr;   Fr<   rH   rJ   r"   r!   rK   zIamV2.PoliciesService.<lambda>i   s6    )?)?:- zJ \$):7*r"   c                 L    | j                  d      }| j                  |||      S )a  Deletes a policy. This action is permanent.

      Args:
        request: (IamPoliciesDeleteRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (GoogleLongrunningOperation) The response message.
      Deleter,   r.   r1   s       r!   rc   zIamV2.PoliciesService.Deletew   1     ##H-f__
'  8 8r"   c                  H    t        j                  ddddgdgdgdddd	d
      S )N4v2/policies/{policiesId}/{policiesId1}/{policiesId2}DELETEziam.policies.deleter7   etagr8   r9   IamPoliciesDeleteRequestr;   Fr<   rH   rJ   r"   r!   rK   zIamV2.PoliciesService.<lambda>   s6    8#9#9H'xHX"47$r"   c                 L    | j                  d      }| j                  |||      S )zGets a policy.

      Args:
        request: (IamPoliciesGetRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (GoogleIamV2Policy) The response message.
      r+   r,   r.   r1   s       r!   r+   zIamV2.PoliciesService.Get   r4   r"   c                  F    t        j                  ddddgdgg ddddd	
      S )Nrf   r6   ziam.policies.getr7   r8   r9   IamPoliciesGetRequestGoogleIamV2PolicyFr<   rH   rJ   r"   r!   rK   zIamV2.PoliciesService.<lambda>   s4     6 6H$xH"1.!r"   c                 L    | j                  d      }| j                  |||      S )a  Retrieves the policies of the specified kind that are attached to a resource. The response lists only policy metadata. In particular, policy rules are omitted.

      Args:
        request: (IamPoliciesListPoliciesRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (GoogleIamV2ListPoliciesResponse) The response message.
      ListPoliciesr,   r.   r1   s       r!   ro   z"IamV2.PoliciesService.ListPolicies   rY   r"   c                  J    t        j                  ddddgdgddgddd	d
d      S )Nr[   r6   ziam.policies.listPoliciesr]   pageSize	pageTokenr_   r9   IamPoliciesListPoliciesRequestGoogleIamV2ListPoliciesResponseFr<   rH   rJ   r"   r!   rK   zIamV2.PoliciesService.<lambda>   s9    )?)?:- zJ +.$:<*r"   c                 L    | j                  d      }| j                  |||      S )aO  Updates the specified policy. You can update only the rules and the display name for the policy. To update a policy, you should use a read-modify-write loop: 1. Use GetPolicy to read the current version of the policy. 2. Modify the policy as needed. 3. Use `UpdatePolicy` to write the updated policy. This pattern helps prevent conflicts between concurrent updates.

      Args:
        request: (GoogleIamV2Policy) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (GoogleLongrunningOperation) The response message.
      Updater,   r.   r1   s       r!   rv   zIamV2.PoliciesService.Update   rd   r"   c                  F    t        j                  ddddgdgg ddddd	
      S )Nrf   PUTziam.policies.updater7   r8   z	<request>rm   r;   Fr<   rH   rJ   r"   r!   rK   zIamV2.PoliciesService.<lambda>   s4    8#9#9H'xH"!-7$r"   r&   )rL   rM   rN   rO   rP   r   rX   rQ   rc   r+   ro   rv   rR   rS   s   @r!   r   rU   R   s^    2E
8"L8F8C8"L8Fr"   r   )r9   NTNNFFNNNN)rL   rM   rN   rO   messagesMESSAGES_MODULEr   MTLS_BASE_URL_PACKAGE_SCOPES_VERSION
_CLIENT_ID_CLIENT_SECRET_USER_AGENT_CLIENT_CLASS_NAME_URL_VERSION_API_KEYr   r   BaseApiServicer   r   rR   rS   s   @r!   r   r   
   s    </*(4-(=>'(*"."+,()-6:/4<@?C	/$#("9"9 #JO// O Or"   r   N)
rO   
__future__r   apitools.base.pyr   ,googlecloudsdk.generated_clients.apis.iam.v2r   ry   BaseApiClientr   rJ   r"   r!   <module>r      s'    2 ' % TWH"" Wr"   