o
    ɶd>                    @   s   d dl mZ d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlmZmZmZ d	d
lmZ edZG dd deZdS )    )absolute_import)requests)six)retrycircuit_breaker)
BaseClient)get_config_value_or_defaultvalidate_config)Signer)Sentinel#get_signer_from_authentication_typeAUTHENTICATION_TYPE_FIELD_NAME   )identity_type_mappingZMissingc                   @   s  e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Z d<d= Z!d>d? Z"d@dA Z#dBdC Z$dDdE Z%dFdG Z&dHdI Z'dJdK Z(dLdM Z)dNdO Z*dPdQ Z+dRdS Z,dTdU Z-dVdW Z.dXdY Z/dZd[ Z0d\d] Z1d^d_ Z2d`da Z3dbdc Z4ddde Z5dfdg Z6dhdi Z7djdk Z8dldm Z9dndo Z:dpdq Z;drds Z<dtdu Z=dvdw Z>dxdy Z?dzd{ Z@d|d} ZAd~d ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd ZcddÄ Zdddń ZeddǄ ZfddɄ Zgdd˄ Zhdd̈́ Ziddτ Zjddф Zkddӄ ZlddՄ Zmddׄ Znddل Zoddۄ Zpdd݄ Zqdd߄ Zrdd Zsdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd Zd d Zdd Zdd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&S ('  IdentityClienta  
    Use the Identity and Access Management Service API to manage users, groups, identity domains, compartments, policies, tagging, and limits. For information about managing users, groups, compartments, and policies, see [Identity and Access Management (without identity domains)](/iaas/Content/Identity/Concepts/overview.htm). For information about tagging and service limits, see [Tagging](/iaas/Content/Tagging/Concepts/taggingoverview.htm) and [Service Limits](/iaas/Content/General/Concepts/servicelimits.htm). For information about creating, modifying, and deleting identity domains, see [Identity and Access Management (with identity domains)](/iaas/Content/Identity/home.htm).
    c              
   K   s  t ||dd d|v r|d }n"t|v rt|}nt|d |d |d |dt|d|dd	}d
|dddi |dd|dtj|dd}d|v rY|d|d< |ddu retj|d< d|v rp|d|d< t	d||t
fi || _|d| _|d| _dS )a  
        Creates a new service client

        :param dict config:
            Configuration keys and values as per `SDK and Tool Configuration <https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm>`__.
            The :py:meth:`~oci.config.from_file` method can be used to load configuration from a file. Alternatively, a ``dict`` can be passed. You can validate_config
            the dict using :py:meth:`~oci.config.validate_config`

        :param str service_endpoint: (optional)
            The endpoint of the service to call using this client. For example ``https://iaas.us-ashburn-1.oraclecloud.com``. If this keyword argument is
            not provided then it will be derived using the region in the config parameter. You should only provide this keyword argument if you have an explicit
            need to specify a service endpoint.

        :param timeout: (optional)
            The connection and read timeouts for the client. The default values are connection timeout 10 seconds and read timeout 60 seconds. This keyword argument can be provided
            as a single float, in which case the value provided is used for both the read and connection timeouts, or as a tuple of two floats. If
            a tuple is provided then the first value is used as the connection timeout and the second value as the read timeout.
        :type timeout: float or tuple(float, float)

        :param signer: (optional)
            The signer to use when signing requests made by the service client. The default is to use a :py:class:`~oci.signer.Signer` based on the values
            provided in the config parameter.

            One use case for this parameter is for `Instance Principals authentication <https://docs.cloud.oracle.com/Content/Identity/Tasks/callingservicesfrominstances.htm>`__
            by passing an instance of :py:class:`~oci.auth.signers.InstancePrincipalsSecurityTokenSigner` as the value for this keyword argument
        :type signer: :py:class:`~oci.signer.AbstractBaseSigner`

        :param obj retry_strategy: (optional)
            A retry strategy to apply to all calls made by this service client (i.e. at the client level). There is no retry strategy applied by default.
            Retry strategies can also be applied at the operation level by passing a ``retry_strategy`` keyword argument as part of calling the operation.
            Any value provided at the operation level will override whatever is specified at the client level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. A convenience :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY`
            is also available. The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

        :param obj circuit_breaker_strategy: (optional)
            A circuit breaker strategy to apply to all calls made by this service client (i.e. at the client level).
            This client uses :py:data:`~oci.circuit_breaker.DEFAULT_CIRCUIT_BREAKER_STRATEGY` as default if no circuit breaker strategy is provided.
            The specifics of circuit breaker strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/circuit_breakers.html>`__.

        :param function circuit_breaker_callback: (optional)
            Callback function to receive any exceptions triggerred by the circuit breaker.

        :param bool client_level_realm_specific_endpoint_template_enabled: (optional)
            A boolean flag to indicate whether or not this client should be created with realm specific endpoint template enabled or disable. By default, this will be set as None.

        :param allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this client should allow control characters in the response object. By default, the client will not
            allow control characters to be in the response object.
        signer)r   tenancyuserfingerprintZkey_filepass_phraseZkey_content)r   r   r   Zprivate_key_file_locationr   Zprivate_key_contentTservice_endpointz	/20160918z1https://identity.{region}.oci.{secondLevelDomain}skip_deserializationFcircuit_breaker_strategy5client_level_realm_specific_endpoint_template_enabled)Zregional_clientr   	base_pathZservice_endpoint_templateZ#service_endpoint_template_per_realmr   r   r   timeoutNallow_control_charsZidentityretry_strategycircuit_breaker_callback)r	   getr   r   r
   r   r   ZGLOBAL_CIRCUIT_BREAKER_STRATEGYZ DEFAULT_CIRCUIT_BREAKER_STRATEGYr   r   base_clientr   r   )selfconfigkwargsr   Zbase_client_init_kwargs r$   @usr/lib/python3.10/site-packages/oci/identity/identity_client.py__init__   s>   3





zIdentityClient.__init__c                      dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7dd|	dt
|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||	||	d|||d	S | jj|||	||	d|||dS )a  
        (For tenancies that support identity domains) Activates a deactivated identity domain. You can only activate identity domains that your user account is not a part of.

        After you send the request, the `lifecycleDetails` of the identity domain is set to ACTIVATING. When the operation completes, the
        `lifecycleDetails` is set to null and the `lifecycleState` of the identity domain is set to ACTIVE.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/activate_domain.py.html>`__ to see an example of how to use activate_domain API.
        domainIdz$/domains/{domainId}/actions/activatePOSTactivate_domainzMhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/ActivateDomainr   r   opc_request_idopc_retry_tokenif_matchc                       g | ]}| vr|qS r$   r$   .0_keyZexpected_kwargsr$   r%   
<listcomp>       z2IdentityClient.activate_domain.<locals>.<listcomp>z(activate_domain got unknown kwargs: {!r}c                 S      i | ]\}}|t ur||qS r$   missingr1   kvr$   r$   r%   
<dictcomp>       z2IdentityClient.activate_domain.<locals>.<dictcomp>Nr   7Parameter {} cannot be None, whitespace or empty stringapplication/jsonr,   r-   r.   acceptcontent-typeopc-request-idopc-retry-tokenif-matchc                 S   &   i | ]\}}|t ur|d ur||qS Nr7   r9   r$   r$   r%   r<         & r   Zoperation_retry_strategyZclient_retry_strategyr   resource_pathmethodpath_paramsheader_paramsr   operation_nameapi_reference_linkrequired_argumentsr   iterkeys
ValueErrorformat	iteritems
isinstancestring_typeslenstripr   r8   r    get_preferred_retry_strategyr   r   DEFAULT_RETRY_STRATEGYNoneRetryStrategyadd_opc_retry_token_if_neededadd_opc_client_retries_headeradd_circuit_breaker_callbackr   make_retrying_callcall_apir!   	domain_idr#   rQ   rK   rL   rO   rP   extra_kwargsrM   r:   r;   rN   r   r$   r3   r%   r*   r   sr   1$


zIdentityClient.activate_domainc                    s  ddg}d}d}d}d}	g d  fdd	t |D }
|
r%td
|
||d}dd t |D }t |D ]\}}|du sOt|t jrVt| dkrVtd|q9dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||||d|	d||	|dS | jj|||||d|	d||	|d
S )aE
  
        Activates the specified MFA TOTP device for the user. Activation requires manual interaction with the Console.


        :param str user_id: (required)
            The OCID of the user.

        :param str mfa_totp_device_id: (required)
            The OCID of the MFA TOTP device.

        :param oci.identity.models.MfaTotpToken mfa_totp_token: (required)
            MFA TOTP token

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.MfaTotpDeviceSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/activate_mfa_totp_device.py.html>`__ to see an example of how to use activate_mfa_totp_device API.
        userIdmfaTotpDeviceIdzA/users/{userId}/mfaTotpDevices/{mfaTotpDeviceId}/actions/activater)   activate_mfa_totp_devicezbhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/MfaTotpDeviceSummary/ActivateMfaTotpDevice)r   r   r.   r-   c                    r/   r$   r$   r0   r3   r$   r%   r4   $  r5   z;IdentityClient.activate_mfa_totp_device.<locals>.<listcomp>z1activate_mfa_totp_device got unknown kwargs: {!r}rf   rg   c                 S   r6   r$   r7   r9   r$   r$   r%   r<   .  r=   z;IdentityClient.activate_mfa_totp_device.<locals>.<dictcomp>Nr   r>   r?   r.   r-   )rA   rB   rE   rD   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   :  rH   r   rI   MfaTotpDeviceSummaryr   
rK   rL   rM   rN   bodyresponse_typer   rO   rP   rQ   rR   )r!   user_idmfa_totp_device_idZmfa_totp_tokenr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rh      sz   -$

z'IdentityClient.activate_mfa_totp_devicec                      dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||
||d|	d|||dS | jj|||
||d|	d|||d
S )a
  
        Add a resource lock to a tag default.


        :param str tag_default_id: (required)
            The OCID of the tag default.

        :param oci.identity.models.AddLockDetails add_lock_details: (required)
            Lock that is going to be added to resource

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagDefault`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/add_tag_default_lock.py.html>`__ to see an example of how to use add_tag_default_lock API.
        tagDefaultIdz+/tagDefaults/{tagDefaultId}/actions/addLockr)   add_tag_default_lockzThttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/AddTagDefaultLockr   r   r.   r,   r-   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z7IdentityClient.add_tag_default_lock.<locals>.<listcomp>z-add_tag_default_lock got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z7IdentityClient.add_tag_default_lock.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r-   rA   rB   rE   rC   rD   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   
TagDefaultr   rk   rR   )r!   tag_default_idadd_lock_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rr   a  z   .$


z#IdentityClient.add_tag_default_lockc                    rp   )a
  
        Add a resource lock to a tag namespace.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param oci.identity.models.AddLockDetails add_lock_details: (required)
            Lock that is going to be added to resource

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagNamespace`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/add_tag_namespace_lock.py.html>`__ to see an example of how to use add_tag_namespace_lock API.
        tagNamespaceIdz//tagNamespaces/{tagNamespaceId}/actions/addLockr)   add_tag_namespace_lockzXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/AddTagNamespaceLockrs   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z9IdentityClient.add_tag_namespace_lock.<locals>.<listcomp>z/add_tag_namespace_lock got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z9IdentityClient.add_tag_namespace_lock.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r-   rt   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ,  rH   r   rI   TagNamespacer   rk   rR   )r!   tag_namespace_idrw   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rz     rx   z%IdentityClient.add_tag_namespace_lockc                      g }d}d}d}d}g d  fddt |D }|r#td|d	d	|d
td}	dd t |	D }	| jj|d| j	d}
|
du rJt
j}
|
rxt|
t
jsd| j|	 | j|	 |
| j |
j| jj|||	|d|d|||d
S | jj|||	|d|d|||d	S )a	  
        Adds the specified user to the specified group and returns a `UserGroupMembership` object with its own OCID.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
        object, first make sure its `lifecycleState` has changed to ACTIVE.


        :param oci.identity.models.AddUserToGroupDetails add_user_to_group_details: (required)
            Request object for adding a user to a group.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.UserGroupMembership`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/add_user_to_group.py.html>`__ to see an example of how to use add_user_to_group API.
        /userGroupMembershipsr)   add_user_to_groupzZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/UserGroupMembership/AddUserToGroupr   r   r-   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z4IdentityClient.add_user_to_group.<locals>.<listcomp>z*add_user_to_group got unknown kwargs: {!r}r?   r-   rA   rB   rD   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z4IdentityClient.add_user_to_group.<locals>.<dictcomp>r   rI   NUserGroupMembershipr   	rK   rL   rN   rl   rm   r   rO   rP   rQ   r   rS   rT   rU   r   r8   rV   r    r[   r   r   r\   rW   r]   r^   r_   r`   r   ra   rb   )r!   Zadd_user_to_group_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   S  sd   %
z IdentityClient.add_user_to_groupc                    s:  dg}d}d}d}d}g d  fddt |D }|r$td	|d
|v r8dg}	|d
 |	vr8td|	||d
td}
dd t |
D }
ddd}| jj|d| j	d}|du rct
j}|rt|t
jsw| j| || j |j| jj|||
|d|d|||d
S | jj|||
|d|d|||d	S )aN  
        Assembles tag defaults in the specified compartment and any parent compartments to determine
        the tags to apply. Tag defaults from parent compartments do not override tag defaults
        referencing the same tag in a compartment lower down the hierarchy. This set of tag defaults
        includes all tag defaults from the current compartment back to the root compartment.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "ACTIVE"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TagDefaultSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/assemble_effective_tag_set.py.html>`__ to see an example of how to use assemble_effective_tag_set API.
        compartmentIdz,/tagDefaults/actions/assembleEffectiveTagSetGETassemble_effective_tag_setzZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/AssembleEffectiveTagSet)r   r   lifecycle_statec                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z=IdentityClient.assemble_effective_tag_set.<locals>.<listcomp>z3assemble_effective_tag_set got unknown kwargs: {!r}r   ACTIVE7Invalid value for `lifecycle_state`, must be one of {0})r   lifecycleStatec                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z=IdentityClient.assemble_effective_tag_set.<locals>.<dictcomp>r?   rA   rB   r   rI   Nlist[TagDefaultSummary]r   	rK   rL   query_paramsrN   rm   r   rO   rP   rQ   r   rS   rT   rU   r   r8   rV   r    r[   r   r   r\   rW   r]   r_   r`   r   ra   rb   r!   compartment_idr#   rQ   rK   rL   rO   rP   re   lifecycle_state_allowed_valuesr   rN   r   r$   r3   r%   r     sr   #
z)IdentityClient.assemble_effective_tag_setc                      dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||
|||	d|||d
S | jj|||
|||	d|||d	S )a
  
        Deletes multiple resources in the compartment. All resources must be in the same compartment. You must have the appropriate
        permissions to delete the resources in the request. This API can only be invoked from the tenancy's
        `home region`__. This operation creates a
        :class:`WorkRequest`. Use the :func:`get_work_request`
        API to monitor the status of the bulk action.

        __ https://docs.cloud.oracle.com/Content/Identity/regions/managingregions.htm#Home


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param oci.identity.models.BulkDeleteResourcesDetails bulk_delete_resources_details: (required)
            Request object for bulk delete resources in a compartment.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/bulk_delete_resources.py.html>`__ to see an example of how to use bulk_delete_resources API.
        r   z9/compartments/{compartmentId}/actions/bulkDeleteResourcesr)   bulk_delete_resourceszWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/BulkDeleteResourcesr   r   r,   r-   c                    r/   r$   r$   r0   r3   r$   r%   r4   W  r5   z8IdentityClient.bulk_delete_resources.<locals>.<listcomp>z.bulk_delete_resources got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   `  r=   z8IdentityClient.bulk_delete_resources.<locals>.<dictcomp>Nr   r>   r?   r,   r-   rA   rB   rC   rD   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   l  rH   r   rI   r   	rK   rL   rM   rN   rl   r   rO   rP   rQ   rR   )r!   r   Zbulk_delete_resources_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     t   /$

z$IdentityClient.bulk_delete_resourcesc                    sB  g }d}d}d}d}g d  fddt |D }|r#td|d	|d
ti}	dd t |	D }	dd|dt|dtd}
dd t |
D }
| jj|d| j	d}|du rat
j}|rt|t
js{| j|
 | j|
 || j |j| jj|||	|
||d|||d
S | jj|||	|
||d|||d	S )a  
        Deletes the specified tag key definitions. This operation triggers a process that removes the
        tags from all resources in your tenancy. The tag key definitions must be within the same tag namespace.

        The following actions happen immediately:

          * If the tag is a cost-tracking tag, the tag no longer counts against your
          10 cost-tracking tags limit, even if you do not disable the tag before running this operation.
          * If the tag is used with dynamic groups, the rules that contain the tag are no longer
          evaluated against the tag.

        After you start this operation, the state of the tag changes to DELETING, and tag removal
        from resources begins. This process can take up to 48 hours depending on the number of resources that
        are tagged and the regions in which those resources reside.

        When all tags have been removed, the state changes to DELETED. You cannot restore a deleted tag. After the tag state
        changes to DELETED, you can use the same tag name again.

        After you start this operation, you cannot start either the :func:`delete_tag` or the :func:`cascade_delete_tag_namespace` operation until this process completes.

        In order to delete tags, you must first retire the tags. Use :func:`update_tag`
        to retire a tag.


        :param oci.identity.models.BulkDeleteTagsDetails bulk_delete_tags_details: (required)
            Request object for deleting tags in bulk.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/bulk_delete_tags.py.html>`__ to see an example of how to use bulk_delete_tags API.
        z/tags/actions/bulkDeleter)   bulk_delete_tagszJhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/BulkDeleteTags)r   r   r,   r-   is_lock_overridec                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z3IdentityClient.bulk_delete_tags.<locals>.<listcomp>z)bulk_delete_tags got unknown kwargs: {!r}isLockOverrider   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z3IdentityClient.bulk_delete_tags.<locals>.<dictcomp>r?   r,   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   Nr   )	rK   rL   r   rN   rl   r   rO   rP   rQ   r   )r!   Zbulk_delete_tags_detailsr#   rQ   rK   rL   rO   rP   re   r   rN   r   r$   r3   r%   r     sl   =

zIdentityClient.bulk_delete_tagsc           
         &  g }d}d}d}d}g d  fddt |D }|r#td|d	d	|d
t|dtd}dd t |D }| jj|d| j	d}	|	du rOt
j}	|	rt|	t
jsi| j| | j| |	| j |	j| jj||||d|d|||d	S | jj||||d|d|||dS )a  
        Edits the specified list of tag key definitions for the selected resources.
        This operation triggers a process that edits the tags on all selected resources. The possible actions are:

          * Add a defined tag when the tag does not already exist on the resource.
          * Update the value for a defined tag when the tag is present on the resource.
          * Add a defined tag when it does not already exist on the resource or update the value for a defined tag when the tag is present on the resource.
          * Remove a defined tag from a resource. The tag is removed from the resource regardless of the tag value.

        See :func:`bulk_edit_operation_details` for more information.

        The edits can include a combination of operations and tag sets.
        However, multiple operations cannot apply to one key definition in the same request.
        For example, if one request adds `tag set-1` to a resource and sets a tag value to `tag set-2`,
        `tag set-1` and `tag set-2` cannot have any common tag definitions.


        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param oci.identity.models.BulkEditTagsDetails bulk_edit_tags_details: (optional)
            The request object for bulk editing tags on resources in the compartment.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/bulk_edit_tags.py.html>`__ to see an example of how to use bulk_edit_tags API.
        z/tags/actions/bulkEditr)   bulk_edit_tagszHhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/BulkEditTags)r   r   r,   r-   bulk_edit_tags_detailsc                    r/   r$   r$   r0   r3   r$   r%   r4   R  r5   z1IdentityClient.bulk_edit_tags.<locals>.<listcomp>z'bulk_edit_tags got unknown kwargs: {!r}r?   r,   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ]  rH   z1IdentityClient.bulk_edit_tags.<locals>.<dictcomp>r   rI   Nr   r   rK   rL   rN   rl   r   rO   rP   rQ   r   
r!   r#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r     sb   3

zIdentityClient.bulk_edit_tagsc                    r   )a  
        Moves multiple resources from one compartment to another. All resources must be in the same compartment.
        This API can only be invoked from the tenancy's `home region`__.
        To move resources, you must have the appropriate permissions to move the resource in both the source and target
        compartments. This operation creates a :class:`WorkRequest`.
        Use the :func:`get_work_request` API to monitor the status of the bulk action.

        __ https://docs.cloud.oracle.com/Content/Identity/regions/managingregions.htm#Home


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param oci.identity.models.BulkMoveResourcesDetails bulk_move_resources_details: (required)
            Request object for bulk move resources in the compartment.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/bulk_move_resources.py.html>`__ to see an example of how to use bulk_move_resources API.
        r   z7/compartments/{compartmentId}/actions/bulkMoveResourcesr)   bulk_move_resourceszUhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/BulkMoveResourcesr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z6IdentityClient.bulk_move_resources.<locals>.<listcomp>z,bulk_move_resources got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z6IdentityClient.bulk_move_resources.<locals>.<dictcomp>Nr   r>   r?   r,   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   r   rR   )r!   r   Zbulk_move_resources_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     r   z"IdentityClient.bulk_move_resourcesc                    s  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|	dt
i}dd t |D }dd|	dt
|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||	|||	d|||d
S | jj|||	|||	d|||d	S )a  
        Deletes the specified tag namespace. This operation triggers a process that removes all of the tags
        defined in the specified tag namespace from all resources in your tenancy and then deletes the tag namespace.

        After you start the delete operation:

          * New tag key definitions cannot be created under the namespace.
          * The state of the tag namespace changes to DELETING.
          * Tag removal from the resources begins.

        This process can take up to 48 hours depending on the number of tag definitions in the namespace, the number of resources
        that are tagged, and the locations of the regions in which those resources reside.

        After all tags are removed, the state changes to DELETED. You cannot restore a deleted tag namespace. After the deleted tag namespace
        changes its state to DELETED, you can use the name of the deleted tag namespace again.

        After you start this operation, you cannot start either the :func:`delete_tag` or the :func:`bulk_delete_tags` operation until this process completes.

        To delete a tag namespace, you must first retire it. Use :func:`update_tag_namespace`
        to retire a tag namespace.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/cascade_delete_tag_namespace.py.html>`__ to see an example of how to use cascade_delete_tag_namespace API.
        ry   z5/tagNamespaces/{tagNamespaceId}/actions/cascadeDeleter)   cascade_delete_tag_namespacez^https://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/CascadeDeleteTagNamespace)r   r   r.   r,   r-   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   E  r5   z?IdentityClient.cascade_delete_tag_namespace.<locals>.<listcomp>z5cascade_delete_tag_namespace got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   N  r=   z?IdentityClient.cascade_delete_tag_namespace.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   W  rH   r?   r.   r,   r-   rt   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   `  rH   r   rI   r   	rK   rL   rM   r   rN   r   rO   rP   rQ   rR   r!   r|   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r     s|   @$


z+IdentityClient.cascade_delete_tag_namespacec                      dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||
|||	d|||d
S | jj|||
|||	d|||d	S )a  
        (For tenancies that support identity domains) Moves the identity domain to a different compartment in the tenancy.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param oci.identity.models.ChangeDomainCompartmentDetails change_domain_compartment_details: (required)
            The request object for moving the identity domain to a different compartment.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/change_domain_compartment.py.html>`__ to see an example of how to use change_domain_compartment API.
        r(   z-/domains/{domainId}/actions/changeCompartmentr)   change_domain_compartmentzVhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/ChangeDomainCompartmentr+   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z<IdentityClient.change_domain_compartment.<locals>.<listcomp>z2change_domain_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z<IdentityClient.change_domain_compartment.<locals>.<dictcomp>Nr   r>   r?   r,   r-   r.   r@   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   r   rR   )r!   rd   Z!change_domain_compartment_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sv   1$


z(IdentityClient.change_domain_compartmentc                    r   )aU  
        (For tenancies that support identity domains) Changes the license type of the given identity domain. The identity domain's
        `lifecycleState` must be set to ACTIVE and the requested `licenseType` must be allowed. To retrieve the allowed `licenseType` for
        the identity domain, use :func:`list_allowed_domain_license_types`.

        After you send your request, the `lifecycleDetails` of this identity domain is set to UPDATING. When the update of the identity
        domain completes, then the `lifecycleDetails` is set to null.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param oci.identity.models.ChangeDomainLicenseTypeDetails change_domain_license_type_details: (required)
            The request object for an update to the license type of the identity domain.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/change_domain_license_type.py.html>`__ to see an example of how to use change_domain_license_type API.
        r(   z-/domains/{domainId}/actions/changeLicenseTyper)   change_domain_license_typezVhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/ChangeDomainLicenseTyper+   c                    r/   r$   r$   r0   r3   r$   r%   r4   C  r5   z=IdentityClient.change_domain_license_type.<locals>.<listcomp>z3change_domain_license_type got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   L  r=   z=IdentityClient.change_domain_license_type.<locals>.<dictcomp>Nr   r>   r?   r,   r-   r.   r@   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   Y  rH   r   rI   r   r   rR   )r!   rd   Z"change_domain_license_type_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sv   6$


z)IdentityClient.change_domain_license_typec                    s  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7d|	dt
i}dd t |D }dd|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||
||||	d|||dS | jj|||
||||	d|||d
S )a
  
        Moves the specified tag namespace to the specified compartment within the same tenancy.

        To move the tag namespace, you must have the manage tag-namespaces permission on both compartments.
        For more information about IAM policies, see `Details for IAM`__.

        Moving a tag namespace moves all the tag key definitions contained in the tag namespace.

        __ https://docs.cloud.oracle.com/Content/Identity/policyreference/iampolicyreference.htm


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param oci.identity.models.ChangeTagNamespaceCompartmentDetail change_tag_namespace_compartment_detail: (required)
            Request object for changing the compartment of a tag namespace.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/change_tag_namespace_compartment.py.html>`__ to see an example of how to use change_tag_namespace_compartment API.
        ry   z9/tagNamespaces/{tagNamespaceId}/actions/changeCompartmentr)    change_tag_namespace_compartmentzbhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/ChangeTagNamespaceCompartmentr   r   r-   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   zCIdentityClient.change_tag_namespace_compartment.<locals>.<listcomp>z9change_tag_namespace_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   zCIdentityClient.change_tag_namespace_compartment.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   )
rK   rL   rM   r   rN   rl   r   rO   rP   rQ   rR   )r!   r|   Z'change_tag_namespace_compartment_detailr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r   ~  s|   /$
z/IdentityClient.change_tag_namespace_compartmentc                    |  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
d}dd t |D }| jj|	d| jd}|du r|tj}|rt|tjs| j| | j| || j |j| jj|||
||d|	d|||dS | jj|||
||d|	d|||d
S )a*  
        Creates a new auth token for the specified user. For information about what auth tokens are for, see
        `Managing User Credentials`__.

        You must specify a *description* for the auth token (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with
        :func:`update_auth_token`.

        Every user has permission to create an auth token for *their own user ID*. An administrator in your organization
        does not need to write a policy to give users this ability. To compare, administrators who have permission to the
        tenancy can use this operation to create an auth token for any user, including themselves.

        __ https://docs.cloud.oracle.com/Content/Identity/access/managing-user-credentials.htm


        :param oci.identity.models.CreateAuthTokenDetails create_auth_token_details: (required)
            Request object for creating a new auth token.

        :param str user_id: (required)
            The OCID of the user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.AuthToken`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_auth_token.py.html>`__ to see an example of how to use create_auth_token API.
        rf   /users/{userId}/authTokensr)   create_auth_tokenzQhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/AuthToken/CreateAuthTokenr   c                    r/   r$   r$   r0   r3   r$   r%   r4   6  r5   z4IdentityClient.create_auth_token.<locals>.<listcomp>z*create_auth_token got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   ?  r=   z4IdentityClient.create_auth_token.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   J  rH   r   rI   	AuthTokenr   rk   rR   )r!   Zcreate_auth_token_detailsrn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sv   0$
z IdentityClient.create_auth_tokenc                    r}   )aa  
        Creates a new compartment in the specified compartment.

        Specify the parent compartment's OCID as the compartment ID in the request object. Remember that the tenancy
        is simply the root compartment. For information about OCIDs, see
        `Resource Identifiers`__.

        You must also specify a *name* for the compartment, which must be unique across all compartments in
        your tenancy. You can use this name or the OCID when writing policies that apply
        to the compartment. For more information about policies, see
        `How Policies Work`__.

        You must also specify a *description* for the compartment (although it can be an empty string). It does
        not have to be unique, and you can change it anytime with
        :func:`update_compartment`.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
        object, first make sure its `lifecycleState` has changed to ACTIVE.

        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
        __ https://docs.cloud.oracle.com/Content/Identity/policieshow/how-policies-work.htm


        :param oci.identity.models.CreateCompartmentDetails create_compartment_details: (required)
            Request object for creating a new compartment.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Compartment`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_compartment.py.html>`__ to see an example of how to use create_compartment API.
        /compartmentsr)   create_compartmentzUhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/CreateCompartmentr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z5IdentityClient.create_compartment.<locals>.<listcomp>z+create_compartment got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z5IdentityClient.create_compartment.<locals>.<dictcomp>r   rI   NCompartmentr   r   r   )r!   Zcreate_compartment_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   q  sd   5
z!IdentityClient.create_compartmentc                    r   )a  
        Creates a new secret key for the specified user. Secret keys are used for authentication with the Object Storage Service's Amazon S3
        compatible API. The secret key consists of an Access Key/Secret Key pair. For information, see
        `Managing User Credentials`__.

        You must specify a *description* for the secret key (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with
        :func:`update_customer_secret_key`.

        Every user has permission to create a secret key for *their own user ID*. An administrator in your organization
        does not need to write a policy to give users this ability. To compare, administrators who have permission to the
        tenancy can use this operation to create a secret key for any user, including themselves.

        __ https://docs.cloud.oracle.com/Content/Identity/access/managing-user-credentials.htm


        :param oci.identity.models.CreateCustomerSecretKeyDetails create_customer_secret_key_details: (required)
            Request object for creating a new secret key.

        :param str user_id: (required)
            The OCID of the user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.CustomerSecretKey`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_customer_secret_key.py.html>`__ to see an example of how to use create_customer_secret_key API.
        rf   "/users/{userId}/customerSecretKeysr)   create_customer_secret_keyzahttps://docs.oracle.com/iaas/api/#/en/identity/20160918/CustomerSecretKey/CreateCustomerSecretKeyr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z=IdentityClient.create_customer_secret_key.<locals>.<listcomp>z3create_customer_secret_key got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   '  r=   z=IdentityClient.create_customer_secret_key.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   2  rH   r   rI   ZCustomerSecretKeyr   rk   rR   )r!   Z"create_customer_secret_key_detailsrn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sv   1$
z)IdentityClient.create_customer_secret_keyc                    s  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||
||d|	d|||dS | jj|||
||d|	d|||d
S )a>	  
        Creates a new DB credential for the specified user.


        :param oci.identity.models.CreateDbCredentialDetails create_db_credential_details: (required)
            Request object for creating a new DB credential with the user.

        :param str user_id: (required)
            The OCID of the user.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.DbCredential`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_db_credential.py.html>`__ to see an example of how to use create_db_credential API.
        rf   /users/{userId}/dbCredentialsr)   create_db_credentialzOhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/CreateDbCredentialr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z7IdentityClient.create_db_credential.<locals>.<listcomp>z-create_db_credential got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z7IdentityClient.create_db_credential.<locals>.<dictcomp>Nr   r>   r?   r,   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   ZDbCredentialr   rk   rR   )r!   Zcreate_db_credential_detailsrn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r   Y  sx   )$

z#IdentityClient.create_db_credentialc                    s  g }d}d}d}d}g d  fddt |D }|r#td|d	d	|d
t|dtd}	dd t |	D }	| jj|d| j	d}
|
du rOt
j}
|
r|t|
t
jsi| j|	 | j|	 |
| j |
j| jj|||	||d|||d	S | jj|||	||d|||dS )aP  
        (For tenancies that support identity domains) Creates a new identity domain in the tenancy with the identity domain home in `homeRegion`.
        After you send your request, the temporary `lifecycleState` of this identity domain is set to CREATING and `lifecycleDetails` to UPDATING.
        When creation of the identity domain completes, this identity domain's `lifecycleState` is set to ACTIVE and `lifecycleDetails` to null.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.

        After creating an `identity domain`, first make sure its `lifecycleState` changes from CREATING to ACTIVE before you use it.


        :param oci.identity.models.CreateDomainDetails create_domain_details: (required)
            The request object for creating a new identity domain.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_domain.py.html>`__ to see an example of how to use create_domain API.
        /domainsr)   create_domainzKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/CreateDomainr   r   r-   r,   c                    r/   r$   r$   r0   r3   r$   r%   r4   	  r5   z0IdentityClient.create_domain.<locals>.<listcomp>z&create_domain got unknown kwargs: {!r}r?   r-   r,   rA   rB   rD   rC   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   	  rH   z0IdentityClient.create_domain.<locals>.<dictcomp>r   rI   Nr   r   r   )r!   Zcreate_domain_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r     sb   -

zIdentityClient.create_domainc                    r}   )a  
        Creates a new dynamic group in your tenancy.

        You must specify your tenancy's OCID as the compartment ID in the request object (remember that the tenancy
        is simply the root compartment). Notice that IAM resources (users, groups, compartments, and some policies)
        reside within the tenancy itself, unlike cloud resources such as compute instances, which typically
        reside within compartments inside the tenancy. For information about OCIDs, see
        `Resource Identifiers`__.

        You must also specify a *name* for the dynamic group, which must be unique across all dynamic groups in your
        tenancy, and cannot be changed. Note that this name has to be also unique across all groups in your tenancy.
        You can use this name or the OCID when writing policies that apply to the dynamic group. For more information
        about policies, see `How Policies Work`__.

        You must also specify a *description* for the dynamic group (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with :func:`update_dynamic_group`.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
        object, first make sure its `lifecycleState` has changed to ACTIVE.

        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
        __ https://docs.cloud.oracle.com/Content/Identity/policieshow/how-policies-work.htm


        :param oci.identity.models.CreateDynamicGroupDetails create_dynamic_group_details: (required)
            Request object for creating a new dynamic group.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.DynamicGroup`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_dynamic_group.py.html>`__ to see an example of how to use create_dynamic_group API.
        /dynamicGroupsr)   create_dynamic_groupzWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/DynamicGroup/CreateDynamicGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4   u	  r5   z7IdentityClient.create_dynamic_group.<locals>.<listcomp>z-create_dynamic_group got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   	  rH   z7IdentityClient.create_dynamic_group.<locals>.<dictcomp>r   rI   NDynamicGroupr   r   r   )r!   Zcreate_dynamic_group_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   3	  d   6
z#IdentityClient.create_dynamic_groupc                    r}   )a  
        Creates a new group in your tenancy.

        You must specify your tenancy's OCID as the compartment ID in the request object (remember that the tenancy
        is simply the root compartment). Notice that IAM resources (users, groups, compartments, and some policies)
        reside within the tenancy itself, unlike cloud resources such as compute instances, which typically
        reside within compartments inside the tenancy. For information about OCIDs, see
        `Resource Identifiers`__.

        You must also specify a *name* for the group, which must be unique across all groups in your tenancy and
        cannot be changed. You can use this name or the OCID when writing policies that apply to the group. For more
        information about policies, see `How Policies Work`__.

        You must also specify a *description* for the group (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with :func:`update_group`.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
        object, first make sure its `lifecycleState` has changed to ACTIVE.

        After creating the group, you need to put users in it and write policies for it.
        See :func:`add_user_to_group` and
        :func:`create_policy`.

        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
        __ https://docs.cloud.oracle.com/Content/Identity/policieshow/how-policies-work.htm


        :param oci.identity.models.CreateGroupDetails create_group_details: (required)
            Request object for creating a new group.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Group`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_group.py.html>`__ to see an example of how to use create_group API.
        /groupsr)   create_groupzIhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Group/CreateGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4   	  r5   z/IdentityClient.create_group.<locals>.<listcomp>z%create_group got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   	  rH   z/IdentityClient.create_group.<locals>.<dictcomp>r   rI   NGroupr   r   r   )r!   Zcreate_group_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   	  d   9
zIdentityClient.create_groupc                    r}   )a  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Creates a new identity provider in your tenancy. For more information, see
        `Identity Providers and Federation`__.

        You must specify your tenancy's OCID as the compartment ID in the request object.
        Remember that the tenancy is simply the root compartment. For information about
        OCIDs, see `Resource Identifiers`__.

        You must also specify a *name* for the `IdentityProvider`, which must be unique
        across all `IdentityProvider` objects in your tenancy and cannot be changed.

        You must also specify a *description* for the `IdentityProvider` (although
        it can be an empty string). It does not have to be unique, and you can change
        it anytime with
        :func:`update_identity_provider`.

        After you send your request, the new object's `lifecycleState` will temporarily
        be CREATING. Before using the object, first make sure its `lifecycleState` has
        changed to ACTIVE.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm
        __ https://docs.cloud.oracle.com/Content/Identity/Concepts/federation.htm
        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm


        :param oci.identity.models.CreateIdentityProviderDetails create_identity_provider_details: (required)
            Request object for creating a new SAML2 identity provider.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IdentityProvider`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_identity_provider.py.html>`__ to see an example of how to use create_identity_provider API.
        /identityProvidersr)   create_identity_providerz_https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdentityProvider/CreateIdentityProviderr   c                    r/   r$   r$   r0   r3   r$   r%   r4   ]
  r5   z;IdentityClient.create_identity_provider.<locals>.<listcomp>z1create_identity_provider got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   g
  rH   z;IdentityClient.create_identity_provider.<locals>.<dictcomp>r   rI   NIdentityProviderr   r   r   )r!   Z create_identity_provider_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   
  r   z'IdentityClient.create_identity_providerc                    r   )ar	  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Creates a single mapping between an IdP group and an IAM Service
        :class:`Group`.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param oci.identity.models.CreateIdpGroupMappingDetails create_idp_group_mapping_details: (required)
            Add a mapping from an SAML2.0 identity provider group to a BMC group.

        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IdpGroupMapping`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_idp_group_mapping.py.html>`__ to see an example of how to use create_idp_group_mapping API.
        identityProviderId5/identityProviders/{identityProviderId}/groupMappingsr)   create_idp_group_mappingz]https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdpGroupMapping/CreateIdpGroupMappingr   c                    r/   r$   r$   r0   r3   r$   r%   r4   
  r5   z;IdentityClient.create_idp_group_mapping.<locals>.<listcomp>z1create_idp_group_mapping got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   
  r=   z;IdentityClient.create_idp_group_mapping.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   
  rH   r   rI   IdpGroupMappingr   rk   rR   )r!   Z create_idp_group_mapping_detailsidentity_provider_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r   
  sv   *$
z'IdentityClient.create_idp_group_mappingc                    x  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7dd|	dt
d}dd t |D }| jj|	d| jd}|du r|tj}|rt|tjs| j| | j| || j |j| jj|||	|d|	d|||d
S | jj|||	|d|	d|||d	S )a  
        Creates a new MFA TOTP device for the user. A user can have one MFA TOTP device.


        :param str user_id: (required)
            The OCID of the user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.MfaTotpDevice`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_mfa_totp_device.py.html>`__ to see an example of how to use create_mfa_totp_device API.
        rf   /users/{userId}/mfaTotpDevicesr)   create_mfa_totp_devicezYhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/MfaTotpDevice/CreateMfaTotpDevicer   c                    r/   r$   r$   r0   r3   r$   r%   r4   +  r5   z9IdentityClient.create_mfa_totp_device.<locals>.<listcomp>z/create_mfa_totp_device got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   4  r=   z9IdentityClient.create_mfa_totp_device.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ?  rH   r   rI   MfaTotpDevicer   	rK   rL   rM   rN   rm   r   rO   rP   rQ   rR   r!   rn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r   
  sr   "$
z%IdentityClient.create_mfa_totp_devicec                    r}   )a  
        Creates a new network source in your tenancy.

        You must specify your tenancy's OCID as the compartment ID in the request object (remember that the tenancy
        is simply the root compartment). Notice that IAM resources (users, groups, compartments, and some policies)
        reside within the tenancy itself, unlike cloud resources such as compute instances, which typically
        reside within compartments inside the tenancy. For information about OCIDs, see
        `Resource Identifiers`__.

        You must also specify a *name* for the network source, which must be unique across all network sources in your
        tenancy, and cannot be changed.
        You can use this name or the OCID when writing policies that apply to the network source. For more information
        about policies, see `How Policies Work`__.

        You must also specify a *description* for the network source (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with :func:`update_network_source`.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
        object, first make sure its `lifecycleState` has changed to ACTIVE.

        After your network resource is created, you can use it in policy to restrict access to only requests made from an allowed
        IP address specified in your network source. For more information, see `Managing Network Sources`__.

        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
        __ https://docs.cloud.oracle.com/Content/Identity/policieshow/how-policies-work.htm
        __ https://docs.cloud.oracle.com/Content/Identity/Tasks/managingnetworksources.htm


        :param oci.identity.models.CreateNetworkSourceDetails create_network_source_details: (required)
            Request object for creating a new network source.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.NetworkSources`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_network_source.py.html>`__ to see an example of how to use create_network_source API.
        /networkSourcesr)   create_network_sourcezZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/NetworkSources/CreateNetworkSourcer   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z8IdentityClient.create_network_source.<locals>.<listcomp>z.create_network_source got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z8IdentityClient.create_network_source.<locals>.<dictcomp>r   rI   NNetworkSourcesr   r   r   )r!   Zcreate_network_source_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   d  sd   :
z$IdentityClient.create_network_sourcec                    |  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
d}dd t |D }| jj|	d| jd}|du r|tj}|rt|tjs| j| | j| || j |j| jj|||
||d|	d|||dS | jj|||
||d|	d|||d
S )a  
        Creates Oauth token for the user


        :param str user_id: (required)
            The OCID of the user.

        :param oci.identity.models.CreateOAuth2ClientCredentialDetails create_o_auth2_client_credential_details: (required)
            Request object containing the information required to generate an Oauth token.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.OAuth2ClientCredential`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_o_auth_client_credential.py.html>`__ to see an example of how to use create_o_auth_client_credential API.
        rf   '/users/{userId}/oauth2ClientCredentialsr)   create_o_auth_client_credentialzXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/CreateOAuthClientCredentialr   c                    r/   r$   r$   r0   r3   r$   r%   r4   
  r5   zBIdentityClient.create_o_auth_client_credential.<locals>.<listcomp>z8create_o_auth_client_credential got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   zBIdentityClient.create_o_auth_client_credential.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   OAuth2ClientCredentialr   rk   rR   )r!   rn   Z(create_o_auth2_client_credential_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     v   %$
z.IdentityClient.create_o_auth_client_credentialc                    r   )a  
        Creates a new Console one-time password for the specified user. For more information about user
        credentials, see `User Credentials`__.

        Use this operation after creating a new user, or if a user forgets their password. The new one-time
        password is returned to you in the response, and you must securely deliver it to the user. They'll
        be prompted to change this password the next time they sign in to the Console. If they don't change
        it within 7 days, the password will expire and you'll need to create a new one-time password for the
        user.

        (For tenancies that support identity domains) Resetting a user's password generates a reset password email
        with a link that the user must follow to reset their password. If the user does not reset their password before the
        link expires, you'll need to reset the user's password again.

        **Note:** The user's Console login is the unique name you specified when you created the user
        (see :func:`create_user`).

        __ https://docs.cloud.oracle.com/Content/Identity/usercred/usercredentials.htm


        :param str user_id: (required)
            The OCID of the user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.UIPassword`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_or_reset_ui_password.py.html>`__ to see an example of how to use create_or_reset_ui_password API.
        rf   /users/{userId}/uiPasswordr)   create_or_reset_ui_passwordzZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/UIPassword/CreateOrResetUiPasswordr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z>IdentityClient.create_or_reset_ui_password.<locals>.<listcomp>z4create_or_reset_ui_password got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z>IdentityClient.create_or_reset_ui_password.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   Z
UIPasswordr   r   rR   r   r$   r3   r%   r   E  sr   2$
z*IdentityClient.create_or_reset_ui_passwordc                    r}   )a  
        Creates a new policy in the specified compartment (either the tenancy or another of your compartments).
        If you're new to policies, see `Get Started with Policies`__.

        You must specify a *name* for the policy, which must be unique across all policies in your tenancy
        and cannot be changed.

        You must also specify a *description* for the policy (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with :func:`update_policy`.

        You must specify one or more policy statements in the statements array. For information about writing
        policies, see `How Policies Work`__ and
        `Common Policies`__.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using the
        object, first make sure its `lifecycleState` has changed to ACTIVE.

        New policies take effect typically within 10 seconds.

        __ https://docs.cloud.oracle.com/Content/Identity/policiesgs/get-started-with-policies.htm
        __ https://docs.cloud.oracle.com/Content/Identity/policieshow/how-policies-work.htm
        __ https://docs.cloud.oracle.com/Content/Identity/policiescommon/commonpolicies.htm


        :param oci.identity.models.CreatePolicyDetails create_policy_details: (required)
            Request object for creating a new policy.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Policy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_policy.py.html>`__ to see an example of how to use create_policy API.
        	/policiesr)   create_policyzKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Policy/CreatePolicyr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z0IdentityClient.create_policy.<locals>.<listcomp>z&create_policy got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z0IdentityClient.create_policy.<locals>.<dictcomp>r   rI   NPolicyr   r   r   )r!   Zcreate_policy_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r     r   zIdentityClient.create_policyc                    r   )ax  
        Creates a subscription to a region for a tenancy.


        :param oci.identity.models.CreateRegionSubscriptionDetails create_region_subscription_details: (required)
            Request object for activate a new region.

        :param str tenancy_id: (required)
            The OCID of the tenancy.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.RegionSubscription`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_region_subscription.py.html>`__ to see an example of how to use create_region_subscription API.
        	tenancyId*/tenancies/{tenancyId}/regionSubscriptionsr)   create_region_subscriptionzchttps://docs.oracle.com/iaas/api/#/en/identity/20160918/RegionSubscription/CreateRegionSubscriptionr   c                    r/   r$   r$   r0   r3   r$   r%   r4   ^  r5   z=IdentityClient.create_region_subscription.<locals>.<listcomp>z3create_region_subscription got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   g  r=   z=IdentityClient.create_region_subscription.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   r  rH   r   rI   ZRegionSubscriptionr   rk   rR   )r!   Z"create_region_subscription_details
tenancy_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r   -  r   z)IdentityClient.create_region_subscriptionc                    r   )a	  
        Creates a new SMTP credential for the specified user. An SMTP credential has an SMTP user name and an SMTP password.
        You must specify a *description* for the SMTP credential (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with
        :func:`update_smtp_credential`.


        :param oci.identity.models.CreateSmtpCredentialDetails create_smtp_credential_details: (required)
            Request object for creating a new SMTP credential with the user.

        :param str user_id: (required)
            The OCID of the user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.SmtpCredential`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_smtp_credential.py.html>`__ to see an example of how to use create_smtp_credential API.
        rf   /users/{userId}/smtpCredentialsr)   create_smtp_credentialz[https://docs.oracle.com/iaas/api/#/en/identity/20160918/SmtpCredential/CreateSmtpCredentialr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z9IdentityClient.create_smtp_credential.<locals>.<listcomp>z/create_smtp_credential got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z9IdentityClient.create_smtp_credential.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   ZSmtpCredentialr   rk   rR   )r!   Zcreate_smtp_credential_detailsrn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sv   ($
z%IdentityClient.create_smtp_credentialc                    r   )a  
        **Deprecated. Use :func:`create_auth_token` instead.**

        Creates a new Swift password for the specified user. For information about what Swift passwords are for, see
        `Managing User Credentials`__.

        You must specify a *description* for the Swift password (although it can be an empty string). It does not
        have to be unique, and you can change it anytime with
        :func:`update_swift_password`.

        Every user has permission to create a Swift password for *their own user ID*. An administrator in your organization
        does not need to write a policy to give users this ability. To compare, administrators who have permission to the
        tenancy can use this operation to create a Swift password for any user, including themselves.

        __ https://docs.cloud.oracle.com/Content/Identity/Tasks/managingcredentials.htm


        :param oci.identity.models.CreateSwiftPasswordDetails create_swift_password_details: (required)
            Request object for creating a new swift password.

        :param str user_id: (required)
            The OCID of the user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.SwiftPassword`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_swift_password.py.html>`__ to see an example of how to use create_swift_password API.
        rf   /users/{userId}/swiftPasswordsr)   create_swift_passwordzYhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/SwiftPassword/CreateSwiftPasswordr   c                    r/   r$   r$   r0   r3   r$   r%   r4   F  r5   z8IdentityClient.create_swift_password.<locals>.<listcomp>z.create_swift_password got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   O  r=   z8IdentityClient.create_swift_password.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   Z  rH   r   rI   SwiftPasswordr   rk   rR   )r!   Zcreate_swift_password_detailsrn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sv   2$
z$IdentityClient.create_swift_passwordc                    s  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7d|	dt
i}dd t |D }dd|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| | j| || j |j| jj|||
|||d|	d|||dS | jj|||
|||d|	d|||dS )a  
        Creates a new tag in the specified tag namespace.

        The tag requires either the OCID or the name of the tag namespace that will contain this
        tag definition.

        You must specify a *name* for the tag, which must be unique across all tags in the tag namespace
        and cannot be changed. The name can contain any ASCII character except the space (_) or period (.) characters.
        Names are case insensitive. That means, for example, "myTag" and "mytag" are not allowed in the same namespace.
        If you specify a name that's already in use in the tag namespace, a 409 error is returned.

        The tag must have a *description*. It does not have to be unique, and you can change it with
        :func:`update_tag`.

        The tag must have a value type, which is specified with a validator. Tags can use either a
        static value or a list of possible values. Static values are entered by a user applying the tag
        to a resource. Lists are created by you and the user must apply a value from the list. Lists
        are validiated.

        * If no `validator` is set, the user applying the tag to a resource can type in a static
        value or leave the tag value empty.
        * If a `validator` is set, the user applying the tag to a resource must select from a list
        of values that you supply with :func:`enum_tag_definition_validator`.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param oci.identity.models.CreateTagDetails create_tag_details: (required)
            Request object for creating a new tag in the specified tag namespace.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Tag`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_tag.py.html>`__ to see an example of how to use create_tag API.
        ry   $/tagNamespaces/{tagNamespaceId}/tagsr)   
create_tagzEhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/CreateTagr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z-IdentityClient.create_tag.<locals>.<listcomp>z#create_tag got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z-IdentityClient.create_tag.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   Tagr   rK   rL   rM   r   rN   rl   rm   r   rO   rP   rQ   rR   )r!   r|   Zcreate_tag_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r     s   =$
zIdentityClient.create_tagc                    s  g }d}d}d}d}g d  fddt |D }|r#td|d	d	|d
t|dtd}	dd t |	D }	| jj|d| j	d}
|
du rOt
j}
|
r}t|
t
jsi| j|	 | j|	 |
| j |
j| jj|||	|d|d|||d
S | jj|||	|d|d|||d	S )a
  
        Creates a new tag default in the specified compartment for the specified tag definition.

        If you specify that a value is required, a value is set during resource creation (either by
        the user creating the resource or another tag defualt). If no value is set, resource creation
        is blocked.

        * If the `isRequired` flag is set to "true", the value is set during resource creation.
        * If the `isRequired` flag is set to "false", the value you enter is set during resource creation.


        :param oci.identity.models.CreateTagDefaultDetails create_tag_default_details: (required)
            Request object for creating a new tag default.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagDefault`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_tag_default.py.html>`__ to see an example of how to use create_tag_default API.
        /tagDefaultsr)   create_tag_defaultzShttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/CreateTagDefaultr   c                    r/   r$   r$   r0   r3   r$   r%   r4   G  r5   z5IdentityClient.create_tag_default.<locals>.<listcomp>z+create_tag_default got unknown kwargs: {!r}r?   r-   r,   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   R  rH   z5IdentityClient.create_tag_default.<locals>.<dictcomp>r   rI   Nru   r   r   r   )r!   Zcreate_tag_default_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r     sf   -

z!IdentityClient.create_tag_defaultc                    r}   )aM  
        Creates a new tag namespace in the specified compartment.

        You must specify the compartment ID in the request object (remember that the tenancy is simply the root
        compartment).

        You must also specify a *name* for the namespace, which must be unique across all namespaces in your tenancy
        and cannot be changed. The name can contain any ASCII character except the space (_) or period (.).
        Names are case insensitive. That means, for example, "myNamespace" and "mynamespace" are not allowed
        in the same tenancy. Once you created a namespace, you cannot change the name.
        If you specify a name that's already in use in the tenancy, a 409 error is returned.

        You must also specify a *description* for the namespace.
        It does not have to be unique, and you can change it with
        :func:`update_tag_namespace`.


        :param oci.identity.models.CreateTagNamespaceDetails create_tag_namespace_details: (required)
            Request object for creating a new tag namespace.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagNamespace`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_tag_namespace.py.html>`__ to see an example of how to use create_tag_namespace API.
        /tagNamespacesr)   create_tag_namespacezWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/CreateTagNamespacer   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z7IdentityClient.create_tag_namespace.<locals>.<listcomp>z-create_tag_namespace got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   z7IdentityClient.create_tag_namespace.<locals>.<dictcomp>r   rI   Nr{   r   r   r   )r!   Zcreate_tag_namespace_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r   w  sd   /
z#IdentityClient.create_tag_namespacec                    r}   )a  
        Creates a new user in your tenancy. For conceptual information about users, your tenancy, and other
        IAM Service components, see `Overview of IAM`__.

        You must specify your tenancy's OCID as the compartment ID in the request object (remember that the
        tenancy is simply the root compartment). Notice that IAM resources (users, groups, compartments, and
        some policies) reside within the tenancy itself, unlike cloud resources such as compute instances,
        which typically reside within compartments inside the tenancy. For information about OCIDs, see
        `Resource Identifiers`__.

        You must also specify a *name* for the user, which must be unique across all users in your tenancy
        and cannot be changed. Allowed characters: No spaces. Only letters, numerals, hyphens, periods,
        underscores, +, and @. If you specify a name that's already in use, you'll get a 409 error.
        This name will be the user's login to the Console. You might want to pick a
        name that your company's own identity system (e.g., Active Directory, LDAP, etc.) already uses.
        If you delete a user and then create a new user with the same name, they'll be considered different
        users because they have different OCIDs.

        You must also specify a *description* for the user (although it can be an empty string).
        It does not have to be unique, and you can change it anytime with
        :func:`update_user`. You can use the field to provide the user's
        full name, a description, a nickname, or other information to generally identify the user.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before
        using the object, first make sure its `lifecycleState` has changed to ACTIVE.

        A new user has no permissions until you place the user in one or more groups (see
        :func:`add_user_to_group`). If the user needs to
        access the Console, you need to provide the user a password (see
        :func:`create_or_reset_ui_password`).
        If the user needs to access the Oracle Cloud Infrastructure REST API, you need to upload a
        public API signing key for that user (see
        `Required Keys and OCIDs`__ and also
        :func:`upload_api_key`).

        **Important:** Make sure to inform the new user which compartment(s) they have access to.

        __ https://docs.cloud.oracle.com/Content/Identity/getstarted/identity-domains.htm
        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm


        :param oci.identity.models.CreateUserDetails create_user_details: (required)
            Request object for creating a new user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.User`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/create_user.py.html>`__ to see an example of how to use create_user API.
        /usersr)   create_userzGhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/CreateUserr   c                    r/   r$   r$   r0   r3   r$   r%   r4   5  r5   z.IdentityClient.create_user.<locals>.<listcomp>z$create_user got unknown kwargs: {!r}r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ?  rH   z.IdentityClient.create_user.<locals>.<dictcomp>r   rI   NUserr   r   r   )r!   Zcreate_user_detailsr#   rQ   rK   rL   rO   rP   re   rN   r   r$   r3   r%   r     sd   H
zIdentityClient.create_userc                    r'   )aq  
        (For tenancies that support identity domains) Deactivates the specified identity domain. Identity domains must be in an ACTIVE
        `lifecycleState` and have no active apps present in the domain or underlying Identity Cloud Service stripe. You cannot deactivate
        the default identity domain.

        After you send your request, the `lifecycleDetails` of this identity domain is set to DEACTIVATING. When the operation completes,
        then the `lifecycleDetails` is set to null and the `lifecycleState` is set to INACTIVE.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/deactivate_domain.py.html>`__ to see an example of how to use deactivate_domain API.
        r(   z&/domains/{domainId}/actions/deactivater)   deactivate_domainzOhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/DeactivateDomainr+   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z4IdentityClient.deactivate_domain.<locals>.<listcomp>z*deactivate_domain got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z4IdentityClient.deactivate_domain.<locals>.<dictcomp>Nr   r>   r?   r,   r-   r.   r@   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   rR   rc   r$   r3   r%   r   d  sr   3$


z IdentityClient.deactivate_domainc                    l  ddg}d}d}d}d}g d  fdd	t |D }	|	r%td
|	||d}
dd t |
D }
t |
D ]\}}|du sOt|t jrVt| dkrVtd|q9dd|	dt
d}dd t |D }| jj|	d| jd}|du r~tj}|rt|tjs| j| || j |j| jj|||
||	d|||d	S | jj|||
||	d|||dS )a  
        Deletes the specified API signing key for the specified user.

        Every user has permission to use this operation to delete a key for *their own user ID*. An
        administrator in your organization does not need to write a policy to give users this ability.
        To compare, administrators who have permission to the tenancy can use this operation to delete
        a key for any user, including themselves.


        :param str user_id: (required)
            The OCID of the user.

        :param str fingerprint: (required)
            The key's fingerprint.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_api_key.py.html>`__ to see an example of how to use delete_api_key API.
        rf   r   z%/users/{userId}/apiKeys/{fingerprint}DELETEdelete_api_key r   r   r.   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z1IdentityClient.delete_api_key.<locals>.<listcomp>z'delete_api_key got unknown kwargs: {!r})rf   r   c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z1IdentityClient.delete_api_key.<locals>.<dictcomp>Nr   r>   r?   r.   rA   rB   rE   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   '  rH   r   rI   r   rJ   r   rS   rT   rU   rV   rW   rX   rY   rZ   r   r8   r    r[   r   r   r\   r]   r_   r`   r   ra   rb   )r!   rn   r   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r     sn   ($
zIdentityClient.delete_api_keyc                    r   )ax  
        Deletes the specified auth token for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str auth_token_id: (required)
            The OCID of the auth token.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_auth_token.py.html>`__ to see an example of how to use delete_auth_token API.
        rf   authTokenId(/users/{userId}/authTokens/{authTokenId}r   delete_auth_tokenr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   x  r5   z4IdentityClient.delete_auth_token.<locals>.<listcomp>z*delete_auth_token got unknown kwargs: {!r}rf   r   c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z4IdentityClient.delete_auth_token.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   )r!   rn   auth_token_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r   I  n   #$
z IdentityClient.delete_auth_tokenc                    h  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7dd|	dt
d}dd t |D }| jj|	d| jd}|du r|tj}|rt|tjs| j| || j |j| jj|||	||	d|||d	S | jj|||	||	d|||dS )a;  
        Deletes the specified compartment. The compartment must be empty.


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_compartment.py.html>`__ to see an example of how to use delete_compartment API.
        r   /compartments/{compartmentId}r   delete_compartmentzUhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/DeleteCompartmentr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z5IdentityClient.delete_compartment.<locals>.<listcomp>z+delete_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z5IdentityClient.delete_compartment.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   r!   r   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r    l    $
z!IdentityClient.delete_compartmentc                    r   )a  
        Deletes the specified secret key for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str customer_secret_key_id: (required)
            The access token of the secret key.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_customer_secret_key.py.html>`__ to see an example of how to use delete_customer_secret_key API.
        rf   customerSecretKeyId8/users/{userId}/customerSecretKeys/{customerSecretKeyId}r   delete_customer_secret_keyr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   @  r5   z=IdentityClient.delete_customer_secret_key.<locals>.<listcomp>z3delete_customer_secret_key got unknown kwargs: {!r}rf   r  c                 S   r6   r$   r7   r9   r$   r$   r%   r<   J  r=   z=IdentityClient.delete_customer_secret_key.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   U  rH   r   rI   r   rJ   r   )r!   rn   customer_secret_key_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r    r   z)IdentityClient.delete_customer_secret_keyc                    sv  ddg}d}d}d}d}g d  fdd	t |D }	|	r%td
|	||d}
dd t |
D }
t |
D ]\}}|du sOt|t jrVt| dkrVtd|q9dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||
||	d|||d	S | jj|||
||	d|||dS )aZ  
        Deletes the specified DB credential for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str db_credential_id: (required)
            The OCID of the DB credential.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_db_credential.py.html>`__ to see an example of how to use delete_db_credential API.
        rf   dbCredentialIdz./users/{userId}/dbCredentials/{dbCredentialId}r   delete_db_credentialzOhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/DeleteDbCredential)r   r   r,   r.   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z7IdentityClient.delete_db_credential.<locals>.<listcomp>z-delete_db_credential got unknown kwargs: {!r})rf   r	  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z7IdentityClient.delete_db_credential.<locals>.<dictcomp>Nr   r>   r?   r,   r.   rA   rB   rC   rE   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   )r!   rn   Zdb_credential_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r
  w  sp   '$

z#IdentityClient.delete_db_credentialc                    sr  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	||	d|||d	S | jj|||	||	d|||dS )a
  
        (For tenancies that support identity domains) Deletes an identity domain. The identity domain must have no active apps present in
        the underlying IDCS stripe. You must also deactivate the identity domain, rendering the `lifecycleState` of the identity domain INACTIVE.
        Furthermore, as the authenticated user performing the operation, you cannot be a member of the identity domain you are deleting.
        Lastly, you cannot delete the default identity domain. A tenancy must always have at least the default identity domain.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_domain.py.html>`__ to see an example of how to use delete_domain API.
        r(   /domains/{domainId}r   delete_domainzKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/DeleteDomainr   r   r.   r,   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z0IdentityClient.delete_domain.<locals>.<listcomp>z&delete_domain got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   #  r=   z0IdentityClient.delete_domain.<locals>.<dictcomp>Nr   r>   r?   r.   r,   rA   rB   rE   rC   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   /  rH   r   rI   r   rJ   r   rc   r$   r3   r%   r    sn   *$

zIdentityClient.delete_domainc                    r   )a&  
        Deletes the specified dynamic group.


        :param str dynamic_group_id: (required)
            The OCID of the dynamic group.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_dynamic_group.py.html>`__ to see an example of how to use delete_dynamic_group API.
        dynamicGroupId/dynamicGroups/{dynamicGroupId}r   delete_dynamic_groupr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   }  r5   z7IdentityClient.delete_dynamic_group.<locals>.<listcomp>z-delete_dynamic_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z7IdentityClient.delete_dynamic_group.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   r!   dynamic_group_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  Q  r  z#IdentityClient.delete_dynamic_groupc                    r   )a  
        Deletes the specified group. The group must be empty.


        :param str group_id: (required)
            The OCID of the group.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_group.py.html>`__ to see an example of how to use delete_group API.
        groupId/groups/{groupId}r   delete_groupr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z/IdentityClient.delete_group.<locals>.<listcomp>z%delete_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z/IdentityClient.delete_group.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   r!   group_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r    r  zIdentityClient.delete_groupc                    r   )aH  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Deletes the specified identity provider. The identity provider must not have
        any group mappings (see :class:`IdpGroupMapping`).

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_identity_provider.py.html>`__ to see an example of how to use delete_identity_provider API.
        r   '/identityProviders/{identityProviderId}r   delete_identity_providerr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   F  r5   z;IdentityClient.delete_identity_provider.<locals>.<listcomp>z1delete_identity_provider got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   O  r=   z;IdentityClient.delete_identity_provider.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   Z  rH   r   rI   r   rJ   r   r!   r   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r    sl   %$
z'IdentityClient.delete_identity_providerc                    r   )a;  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Deletes the specified group mapping.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str mapping_id: (required)
            The OCID of the group mapping.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_idp_group_mapping.py.html>`__ to see an example of how to use delete_idp_group_mapping API.
        r   	mappingIdA/identityProviders/{identityProviderId}/groupMappings/{mappingId}r   delete_idp_group_mappingr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z;IdentityClient.delete_idp_group_mapping.<locals>.<listcomp>z1delete_idp_group_mapping got unknown kwargs: {!r}r   r  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z;IdentityClient.delete_idp_group_mapping.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   r!   r   
mapping_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  |  sn   '$
z'IdentityClient.delete_idp_group_mappingc                    r   )a  
        Deletes the specified MFA TOTP device for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str mfa_totp_device_id: (required)
            The OCID of the MFA TOTP device.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_mfa_totp_device.py.html>`__ to see an example of how to use delete_mfa_totp_device API.
        rf   rg   0/users/{userId}/mfaTotpDevices/{mfaTotpDeviceId}r   delete_mfa_totp_devicezYhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/MfaTotpDevice/DeleteMfaTotpDevicer   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z9IdentityClient.delete_mfa_totp_device.<locals>.<listcomp>z/delete_mfa_totp_device got unknown kwargs: {!r}ri   c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z9IdentityClient.delete_mfa_totp_device.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   *  rH   r   rI   r   rJ   r   r!   rn   ro   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r$    r   z%IdentityClient.delete_mfa_totp_devicec                    r   )a+  
        Deletes the specified network source.


        :param str network_source_id: (required)
            The OCID of the network source.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_network_source.py.html>`__ to see an example of how to use delete_network_source API.
        networkSourceId!/networkSources/{networkSourceId}r   delete_network_sourcezZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/NetworkSources/DeleteNetworkSourcer   c                    r/   r$   r$   r0   r3   r$   r%   r4   x  r5   z8IdentityClient.delete_network_source.<locals>.<listcomp>z.delete_network_source got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z8IdentityClient.delete_network_source.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   r!   network_source_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r(  L  r  z$IdentityClient.delete_network_sourcec                    r   )a  
        Delete Oauth token for the user


        :param str user_id: (required)
            The OCID of the user.

        :param str oauth2_client_credential_id: (required)
            The ID of the Oauth credential.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_o_auth_client_credential.py.html>`__ to see an example of how to use delete_o_auth_client_credential API.
        rf   oauth2ClientCredentialIdB/users/{userId}/oauth2ClientCredentials/{oauth2ClientCredentialId}r   delete_o_auth_client_credentialzXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/DeleteOAuthClientCredentialr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   zBIdentityClient.delete_o_auth_client_credential.<locals>.<listcomp>z8delete_o_auth_client_credential got unknown kwargs: {!r}rf   r+  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   zBIdentityClient.delete_o_auth_client_credential.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   )r!   rn   oauth2_client_credential_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r-    r   z.IdentityClient.delete_o_auth_client_credentialc                    r   )a:  
        Deletes the specified policy. The deletion takes effect typically within 10 seconds.


        :param str policy_id: (required)
            The OCID of the policy.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_policy.py.html>`__ to see an example of how to use delete_policy API.
        policyId/policies/{policyId}r   delete_policyr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   @  r5   z0IdentityClient.delete_policy.<locals>.<listcomp>z&delete_policy got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   I  r=   z0IdentityClient.delete_policy.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   T  rH   r   rI   r   rJ   r   r!   	policy_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r2    r  zIdentityClient.delete_policyc                    r   )a  
        Deletes the specified SMTP credential for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str smtp_credential_id: (required)
            The OCID of the SMTP credential.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_smtp_credential.py.html>`__ to see an example of how to use delete_smtp_credential API.
        rf   smtpCredentialId2/users/{userId}/smtpCredentials/{smtpCredentialId}r   delete_smtp_credentialr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z9IdentityClient.delete_smtp_credential.<locals>.<listcomp>z/delete_smtp_credential got unknown kwargs: {!r}rf   r5  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z9IdentityClient.delete_smtp_credential.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   )r!   rn   smtp_credential_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r7  v  r   z%IdentityClient.delete_smtp_credentialc                    r   )a  
        **Deprecated. Use :func:`delete_auth_token` instead.**

        Deletes the specified Swift password for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str swift_password_id: (required)
            The OCID of the Swift password.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_swift_password.py.html>`__ to see an example of how to use delete_swift_password API.
        rf   swiftPasswordId0/users/{userId}/swiftPasswords/{swiftPasswordId}r   delete_swift_passwordr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z8IdentityClient.delete_swift_password.<locals>.<listcomp>z.delete_swift_password got unknown kwargs: {!r}rf   r:  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z8IdentityClient.delete_swift_password.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   "  rH   r   rI   r   rJ   r   )r!   rn   swift_password_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r<    sn   %$
z$IdentityClient.delete_swift_passwordc                    s  ddg}d}d}d}d}g d  fdd	t |D }	|	r%td
|	||d}
dd t |
D }
t |
D ]\}}|du sOt|t jrVt| dkrVtd|q9d|	dt
i}dd t |D }dd|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||
|||	d|||d
S | jj|||
|||	d|||d	S )ar  
        Deletes the specified tag definition. This operation triggers a process that removes the
        tag from all resources in your tenancy.

        These things happen immediately:
          * If the tag was a cost-tracking tag, it no longer counts against your 10 cost-tracking
          tags limit, whether you first disabled it or not.
          * If the tag was used with dynamic groups, none of the rules that contain the tag will
          be evaluated against the tag.

        When you start the delete operation, the state of the tag changes to DELETING and tag removal
        from resources begins. This can take up to 48 hours depending on the number of resources that
        were tagged as well as the regions in which those resources reside.

        When all tags have been removed, the state changes to DELETED. You cannot restore a deleted tag. Once the deleted tag
        changes its state to DELETED, you can use the same tag name again.

        After you start this operation, you cannot start either the :func:`bulk_delete_tags` or the :func:`cascade_delete_tag_namespace` operation until this process completes.

        To delete a tag, you must first retire it. Use :func:`update_tag`
        to retire a tag.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param str tag_name: (required)
            The name of the tag.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_tag.py.html>`__ to see an example of how to use delete_tag API.
        ry   tagName./tagNamespaces/{tagNamespaceId}/tags/{tagName}r   
delete_tagzEhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/DeleteTagr   r   r.   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z-IdentityClient.delete_tag.<locals>.<listcomp>z#delete_tag got unknown kwargs: {!r}ry   r?  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z-IdentityClient.delete_tag.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   r   r   )r!   r|   tag_namer#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   rA  D  sx   9$
zIdentityClient.delete_tagc                      dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|	dt
i}dd t |D }dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	|||	d|||d
S | jj|||	|||	d|||d	S )a[  
        Deletes the the specified tag default.


        :param str tag_default_id: (required)
            The OCID of the tag default.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_tag_default.py.html>`__ to see an example of how to use delete_tag_default API.
        rq   /tagDefaults/{tagDefaultId}r   delete_tag_defaultzShttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/DeleteTagDefault)r   r   r,   r.   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z5IdentityClient.delete_tag_default.<locals>.<listcomp>z+delete_tag_default got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z5IdentityClient.delete_tag_default.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r?   r,   r.   r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   r   r   )r!   rv   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   rG    sx   '$

z!IdentityClient.delete_tag_defaultc                    rE  )a	  
        Deletes the specified tag namespace. Only an empty tag namespace can be deleted with this operation. To use this operation
        to delete a tag namespace that contains tag definitions, first delete all of its tag definitions.

        Use :func:`cascade_delete_tag_namespace` to delete a tag namespace along with all of
        the tag definitions contained within that namespace.

        Use :func:`delete_tag` to delete a tag definition.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_tag_namespace.py.html>`__ to see an example of how to use delete_tag_namespace API.
        ry   /tagNamespaces/{tagNamespaceId}r   delete_tag_namespacezWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/DeleteTagNamespace)r   r   r.   r,   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   v  r5   z7IdentityClient.delete_tag_namespace.<locals>.<listcomp>z-delete_tag_namespace got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z7IdentityClient.delete_tag_namespace.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r?   r.   r,   r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   r   r   r   r$   r3   r%   rI  ;  sx   -$

z#IdentityClient.delete_tag_namespacec                    r   )a  
        Deletes the specified user. The user must not be in any groups.


        :param str user_id: (required)
            The OCID of the user.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/delete_user.py.html>`__ to see an example of how to use delete_user API.
        rf   /users/{userId}r   delete_userr   r   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z.IdentityClient.delete_user.<locals>.<listcomp>z$delete_user got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z.IdentityClient.delete_user.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   rJ   r   r   r$   r3   r%   rK    r  zIdentityClient.delete_userc                    r   )a  
        (For tenancies that support identity domains) Replicates the identity domain to a new region (provided that the region is the
        tenancy home region or other region that the tenancy subscribes to). You can only replicate identity domains that are in an ACTIVE
        `lifecycleState` and not currently updating or already replicating. You also can only trigger the replication of secondary identity domains.
        The default identity domain is automatically replicated to all regions that the tenancy subscribes to.

        After you send the request, the `state` of the identity domain in the replica region is set to ENABLING_REPLICATION. When the operation
        completes, the `state` is set to REPLICATION_ENABLED.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param oci.identity.models.EnableReplicationToRegionDetails enable_replication_to_region_details: (required)
            The request object for replicating the identity domain to another region.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/enable_replication_to_region.py.html>`__ to see an example of how to use enable_replication_to_region API.
        r(   z5/domains/{domainId}/actions/enableReplicationToRegionr)   enable_replication_to_regionzXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/EnableReplicationToRegionr+   c                    r/   r$   r$   r0   r3   r$   r%   r4   [  r5   z?IdentityClient.enable_replication_to_region.<locals>.<listcomp>z5enable_replication_to_region got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   d  r=   z?IdentityClient.enable_replication_to_region.<locals>.<dictcomp>Nr   r>   r?   r,   r-   r.   r@   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   q  rH   r   rI   r   r   rR   )r!   rd   Z$enable_replication_to_region_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rL    v   7$


z+IdentityClient.enable_replication_to_regionc                    sp  ddg}d}d}d}d}g d  fdd	t |D }	|	r%td
|	||d}
dd t |
D }
t |
D ]\}}|du sOt|t jrVt| dkrVtd|q9dd|	dt
d}dd t |D }| jj|	d| jd}|du r~tj}|rt|tjs| j| || j |j| jj|||
|d|	d|||d
S | jj|||
|d|	d|||d	S )a  
        Generate seed for the MFA TOTP device.


        :param str user_id: (required)
            The OCID of the user.

        :param str mfa_totp_device_id: (required)
            The OCID of the MFA TOTP device.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.MfaTotpDevice`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/generate_totp_seed.py.html>`__ to see an example of how to use generate_totp_seed API.
        rf   rg   zE/users/{userId}/mfaTotpDevices/{mfaTotpDeviceId}/actions/generateSeedr)   generate_totp_seedzVhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/MfaTotpDevice/GenerateTotpSeedr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z5IdentityClient.generate_totp_seed.<locals>.<listcomp>z+generate_totp_seed got unknown kwargs: {!r}ri   c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z5IdentityClient.generate_totp_seed.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   r   r   r   r   r%  r$   r3   r%   rN    sr   #$
z!IdentityClient.generate_totp_seedc                    L  dg}d}d}d}d}dg  fddt |D }|r#td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sLt|t jrSt| dkrStd|
q6ddd}| j	j
|d| jd}|du rltj}|rt|tjs| j	| || j |j| j	j|||	|d|d|||d
S | j	j|||	|d|d|||d	S )a}  
        Gets the authentication policy for the given tenancy. You must specify your tenant's OCID as the value for
        the compartment ID (remember that the tenancy is simply the root compartment).


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.AuthenticationPolicy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_authentication_policy.py.html>`__ to see an example of how to use get_authentication_policy API.
        r   '/authenticationPolicies/{compartmentId}r   get_authentication_policyzdhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/AuthenticationPolicy/GetAuthenticationPolicyr   c                    r/   r$   r$   r0   r3   r$   r%   r4   !  r5   z<IdentityClient.get_authentication_policy.<locals>.<listcomp>z2get_authentication_policy got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   *  r=   z<IdentityClient.get_authentication_policy.<locals>.<dictcomp>Nr   r>   r?   r   rI   AuthenticationPolicyr   r   r   rS   rT   rU   rV   rW   rX   rY   rZ   r    r[   r   r   r   r\   r]   r_   r`   r   ra   rb   r  r$   r3   r%   rQ    l   $z(IdentityClient.get_authentication_policyc                    rO  )a  
        Gets the specified compartment's information.

        This operation does not return a list of all the resources inside the compartment. There is no single
        API operation that does that. Compartments can contain multiple types of resources (instances, block
        storage volumes, etc.). To find out what's in a compartment, you must call the "List" operation for
        each resource type and specify the compartment's OCID as a query parameter in the request. For example,
        call the :func:`list_instances` operation in the Cloud Compute
        Service or the :func:`list_volumes` operation in Cloud Block Storage.


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Compartment`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_compartment.py.html>`__ to see an example of how to use get_compartment API.
        r   r   r   get_compartmentzRhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/GetCompartmentr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z2IdentityClient.get_compartment.<locals>.<listcomp>z(get_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z2IdentityClient.get_compartment.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r  r$   r3   r%   rU  W  sl   "$zIdentityClient.get_compartmentc                    l  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7dd|	dt
d}dd t |D }| jj|	d| jd}|du r|tj}|rt|tjs| j| || j |j| jj|||	|d|	d|||d
S | jj|||	|d|	d|||d	S )a  
        (For tenancies that support identity domains) Gets the specified identity domain's information.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Domain`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_domain.py.html>`__ to see an example of how to use get_domain API.
        r(   r  r   
get_domainzHhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/GetDomainr   r   r,   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z-IdentityClient.get_domain.<locals>.<listcomp>z#get_domain got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z-IdentityClient.get_domain.<locals>.<dictcomp>Nr   r>   r?   r,   rA   rB   rC   c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   Domainr   r   r   rc   r$   r3   r%   rW    p   $
zIdentityClient.get_domainc                    rO  )a  
        Gets the specified dynamic group's information.


        :param str dynamic_group_id: (required)
            The OCID of the dynamic group.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.DynamicGroup`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_dynamic_group.py.html>`__ to see an example of how to use get_dynamic_group API.
        r  r  r   get_dynamic_groupzThttps://docs.oracle.com/iaas/api/#/en/identity/20160918/DynamicGroup/GetDynamicGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4   ;  r5   z4IdentityClient.get_dynamic_group.<locals>.<listcomp>z*get_dynamic_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   D  r=   z4IdentityClient.get_dynamic_group.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r  r$   r3   r%   r\    l   $z IdentityClient.get_dynamic_groupc                    rO  )a|  
        Gets the specified group's information.

        This operation does not return a list of all the users in the group. To do that, use
        :func:`list_user_group_memberships` and
        provide the group's OCID as a query parameter in the request.


        :param str group_id: (required)
            The OCID of the group.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Group`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_group.py.html>`__ to see an example of how to use get_group API.
        r  r  r   	get_groupzFhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Group/GetGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z,IdentityClient.get_group.<locals>.<listcomp>z"get_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z,IdentityClient.get_group.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r  r$   r3   r%   r^  q  l   $zIdentityClient.get_groupc                    rV  )aG  
        Gets the details of a specified IAM work request. The workRequestID is returned in the opc-workrequest-id header for any asynchronous operation in the Identity and Access Management service.


        :param str iam_work_request_id: (required)
            The OCID of the IAM work request.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IamWorkRequest`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_iam_work_request.py.html>`__ to see an example of how to use get_iam_work_request API.
        iamWorkRequestIdz#/iamWorkRequests/{iamWorkRequestId}r   get_iam_work_requestzXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/IamWorkRequest/GetIamWorkRequestrX  c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z7IdentityClient.get_iam_work_request.<locals>.<listcomp>z-get_iam_work_request got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z7IdentityClient.get_iam_work_request.<locals>.<dictcomp>Nr   r>   r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<     rH   r   rI   ZIamWorkRequestr   r   r   )r!   iam_work_request_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   ra    r[  z#IdentityClient.get_iam_work_requestc                    rO  )a  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Gets the specified identity provider's information.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IdentityProvider`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_identity_provider.py.html>`__ to see an example of how to use get_identity_provider API.
        r   r  r   get_identity_providerz\https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdentityProvider/GetIdentityProviderr   c                    r/   r$   r$   r0   r3   r$   r%   r4   V  r5   z8IdentityClient.get_identity_provider.<locals>.<listcomp>z.get_identity_provider got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   _  r=   z8IdentityClient.get_identity_provider.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r  r$   r3   r%   rc  0  r_  z$IdentityClient.get_identity_providerc                    P  ddg}d}d}d}d}dg  fdd	t |D }	|	r$td
|	||d}
dd t |
D }
t |
D ]\}}|du sNt|t jrUt| dkrUtd|q8ddd}| j	j
|d| jd}|du rntj}|rt|tjs| j	| || j |j| j	j|||
|d|d|||d
S | j	j|||
|d|d|||d	S )a  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Gets the specified group mapping.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str mapping_id: (required)
            The OCID of the group mapping.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IdpGroupMapping`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_idp_group_mapping.py.html>`__ to see an example of how to use get_idp_group_mapping API.
        r   r  r  r   get_idp_group_mappingzZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/IdpGroupMapping/GetIdpGroupMappingr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z8IdentityClient.get_idp_group_mapping.<locals>.<listcomp>z.get_idp_group_mapping got unknown kwargs: {!r}r   c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z8IdentityClient.get_idp_group_mapping.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r!  r$   r3   r%   re    sn   "$z$IdentityClient.get_idp_group_mappingc                    rd  )a;  
        Get the specified MFA TOTP device for the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param str mfa_totp_device_id: (required)
            The OCID of the MFA TOTP device.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.MfaTotpDeviceSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_mfa_totp_device.py.html>`__ to see an example of how to use get_mfa_totp_device API.
        rf   rg   r#  r   get_mfa_totp_devicez]https://docs.oracle.com/iaas/api/#/en/identity/20160918/MfaTotpDeviceSummary/GetMfaTotpDevicer   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z6IdentityClient.get_mfa_totp_device.<locals>.<listcomp>z,get_mfa_totp_device got unknown kwargs: {!r}ri   c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z6IdentityClient.get_mfa_totp_device.<locals>.<dictcomp>Nr   r>   r?   r   rI   rj   r   r   rS  r%  r$   r3   r%   rf    n   $z"IdentityClient.get_mfa_totp_devicec                    rO  )a  
        Gets the specified network source's information.


        :param str network_source_id: (required)
            The OCID of the network source.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.NetworkSources`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_network_source.py.html>`__ to see an example of how to use get_network_source API.
        r&  r'  r   get_network_sourcezWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/NetworkSources/GetNetworkSourcer   c                    r/   r$   r$   r0   r3   r$   r%   r4   j  r5   z5IdentityClient.get_network_source.<locals>.<listcomp>z+get_network_source got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   s  r=   z5IdentityClient.get_network_source.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r)  r$   r3   r%   rh  H  r]  z!IdentityClient.get_network_sourcec                    rO  )a  
        Gets the specified policy's information.


        :param str policy_id: (required)
            The OCID of the policy.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Policy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_policy.py.html>`__ to see an example of how to use get_policy API.
        r0  r1  r   
get_policyzHhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Policy/GetPolicyr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z-IdentityClient.get_policy.<locals>.<listcomp>z#get_policy got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z-IdentityClient.get_policy.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r3  r$   r3   r%   ri    r]  zIdentityClient.get_policyc                    sn  ddg}d}d}d}d}dg  fdd	t |D }	|	r$td
|	d|i}
dd t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7d|i}dd t |D }ddd}| j	j
|d| jd}|du r{tj}|rt|tjs| j	| || j |j| j	j|||
||d|d|||dS | j	j|||
||d|d|||d
S )a  
        Retrieve the standard tag namespace template given the standard tag namespace name.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str standard_tag_namespace_name: (required)
            The name of the standard tag namespace tempate that is requested

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.StandardTagNamespaceTemplate`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_standard_tag_template.py.html>`__ to see an example of how to use get_standard_tag_template API.
        ZstandardTagNamespaceNamer   z>/tags/standardTagNamespaceTemplates/{standardTagNamespaceName}r   get_standard_tag_templatezkhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/StandardTagNamespaceTemplate/GetStandardTagTemplater   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z<IdentityClient.get_standard_tag_template.<locals>.<listcomp>z2get_standard_tag_template got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   &  r=   z<IdentityClient.get_standard_tag_template.<locals>.<dictcomp>Nr   r>   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   /  rH   r?   r   rI   ZStandardTagNamespaceTemplater   
rK   rL   rM   r   rN   rm   r   rO   rP   rQ   rS  )r!   r   Zstandard_tag_namespace_namer#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   rj    sv   $z(IdentityClient.get_standard_tag_templatec                    rd  )a  
        Gets the specified tag's information.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param str tag_name: (required)
            The name of the tag.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Tag`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_tag.py.html>`__ to see an example of how to use get_tag API.
        ry   r?  r@  r   get_tagzBhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/GetTagr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z*IdentityClient.get_tag.<locals>.<listcomp>z get_tag got unknown kwargs: {!r}rC  c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z*IdentityClient.get_tag.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  )r!   r|   rD  r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rl  Z  rg  zIdentityClient.get_tagc                    rO  )a  
        Retrieves the specified tag default.


        :param str tag_default_id: (required)
            The OCID of the tag default.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagDefault`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_tag_default.py.html>`__ to see an example of how to use get_tag_default API.
        rq   rF  r   get_tag_defaultzPhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/GetTagDefaultr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z2IdentityClient.get_tag_default.<locals>.<listcomp>z(get_tag_default got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z2IdentityClient.get_tag_default.<locals>.<dictcomp>Nr   r>   r?   r   rI   ru   r   r   rS  )r!   rv   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rm    r]  zIdentityClient.get_tag_defaultc                    rO  )a  
        Gets the specified tag namespace's information.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagNamespace`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_tag_namespace.py.html>`__ to see an example of how to use get_tag_namespace API.
        ry   rH  r   get_tag_namespacezThttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/GetTagNamespacer   c                    r/   r$   r$   r0   r3   r$   r%   r4   0  r5   z4IdentityClient.get_tag_namespace.<locals>.<listcomp>z*get_tag_namespace got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   9  r=   z4IdentityClient.get_tag_namespace.<locals>.<dictcomp>Nr   r>   r?   r   rI   r{   r   r   rS  )r!   r|   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rn    r]  z IdentityClient.get_tag_namespacec                    rO  )a]  
        Gets details on a specified work request. The workRequestID is returned in the opc-workrequest-id header
        for any asynchronous operation in tagging service.


        :param str work_request_id: (required)
            The OCID of the work request.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TaggingWorkRequest`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_tagging_work_request.py.html>`__ to see an example of how to use get_tagging_work_request API.
        workRequestIdz$/taggingWorkRequests/{workRequestId}r   get_tagging_work_requestz`https://docs.oracle.com/iaas/api/#/en/identity/20160918/TaggingWorkRequest/GetTaggingWorkRequestr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z;IdentityClient.get_tagging_work_request.<locals>.<listcomp>z1get_tagging_work_request got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z;IdentityClient.get_tagging_work_request.<locals>.<dictcomp>Nr   r>   r?   r   rI   ZTaggingWorkRequestr   r   rS  r!   work_request_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rp  f  rT  z'IdentityClient.get_tagging_work_requestc                    rO  )a  
        Get the specified tenancy's information.


        :param str tenancy_id: (required)
            The OCID of the tenancy.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Tenancy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_tenancy.py.html>`__ to see an example of how to use get_tenancy API.
        r   z/tenancies/{tenancyId}r   get_tenancyzJhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tenancy/GetTenancyr   c                    r/   r$   r$   r0   r3   r$   r%   r4     r5   z.IdentityClient.get_tenancy.<locals>.<listcomp>z$get_tenancy got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<     r=   z.IdentityClient.get_tenancy.<locals>.<dictcomp>Nr   r>   r?   r   rI   ZTenancyr   r   rS  r!   r   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rs    r]  zIdentityClient.get_tenancyc                    rO  )a  
        Gets the specified user's information.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.User`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_user.py.html>`__ to see an example of how to use get_user API.
        rf   rJ  r   get_userzDhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/GetUserr   c                    r/   r$   r$   r0   r3   r$   r%   r4   9   r5   z+IdentityClient.get_user.<locals>.<listcomp>z!get_user got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   B   r=   z+IdentityClient.get_user.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r   r$   r3   r%   ru     r]  zIdentityClient.get_userc                    rO  )a  
        Gets the specified UserGroupMembership's information.


        :param str user_group_membership_id: (required)
            The OCID of the userGroupMembership.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.UserGroupMembership`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_user_group_membership.py.html>`__ to see an example of how to use get_user_group_membership API.
        userGroupMembershipId-/userGroupMemberships/{userGroupMembershipId}r   get_user_group_membershipzbhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/UserGroupMembership/GetUserGroupMembershipr   c                    r/   r$   r$   r0   r3   r$   r%   r4      r5   z<IdentityClient.get_user_group_membership.<locals>.<listcomp>z2get_user_group_membership got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<      r=   z<IdentityClient.get_user_group_membership.<locals>.<dictcomp>Nr   r>   r?   r   rI   r   r   r   rS  r!   Zuser_group_membership_idr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   rx  o   r]  z(IdentityClient.get_user_group_membershipc                    rO  )a  
        Gets the specified user's console password information. The returned object contains the user's OCID,
        but not the password itself. The actual password is returned only when created or reset.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.UIPasswordInformation`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_user_ui_password_information.py.html>`__ to see an example of how to use get_user_ui_password_information API.
        rf   r   r    get_user_ui_password_informationzjhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/UIPasswordInformation/GetUserUiPasswordInformationr   c                    r/   r$   r$   r0   r3   r$   r%   r4      r5   zCIdentityClient.get_user_ui_password_information.<locals>.<listcomp>z9get_user_ui_password_information got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<      r=   zCIdentityClient.get_user_ui_password_information.<locals>.<dictcomp>Nr   r>   r?   r   rI   ZUIPasswordInformationr   r   rS  r   r$   r3   r%   rz     rT  z/IdentityClient.get_user_ui_password_informationc                    rO  )aN  
        Gets details on a specified work request. The workRequestID is returned in the opc-workrequest-id header
        for any asynchronous operation in the compartment service.


        :param str work_request_id: (required)
            The OCID of the work request.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.WorkRequest`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/get_work_request.py.html>`__ to see an example of how to use get_work_request API.
        ro  z/workRequests/{workRequestId}r   get_work_requestzRhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/WorkRequest/GetWorkRequestr   c                    r/   r$   r$   r0   r3   r$   r%   r4   C!  r5   z3IdentityClient.get_work_request.<locals>.<listcomp>z)get_work_request got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   L!  r=   z3IdentityClient.get_work_request.<locals>.<dictcomp>Nr   r>   r?   r   rI   ZWorkRequestr   r   rS  rq  r$   r3   r%   r{   !  rT  zIdentityClient.get_work_requestc           
         r   )a^	  
        OCI will release Tag Namespaces that our customers can import.
        These Tag Namespaces will provide Tags for our customers and Partners to provide consistency and enable data reporting.


        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param oci.identity.models.ImportStandardTagsDetails import_standard_tags_details: (optional)
            The request object for creating or updating standard tag namespace.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/import_standard_tags.py.html>`__ to see an example of how to use import_standard_tags API.
        z /tags/actions/importStandardTagsr)   import_standard_tagszNhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/ImportStandardTags)r   r   r,   r-   import_standard_tags_detailsc                    r/   r$   r$   r0   r3   r$   r%   r4   !  r5   z7IdentityClient.import_standard_tags.<locals>.<listcomp>z-import_standard_tags got unknown kwargs: {!r}r?   r,   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   !  rH   z7IdentityClient.import_standard_tags.<locals>.<dictcomp>r   rI   Nr}  r   r   r   r   r$   r3   r%   r|  y!  sb   '

z#IdentityClient.import_standard_tagsc                    s,  g }d}d}d}d}g d  fddt |D }|r#td|d	|d
ti}dd t |D }dd|dtd}	dd t |	D }	| jj|d| j	d}
|
du r\t
j}
|
rt|
t
jsp| j|	 |
| j |
j| jj||||	d|d|||d
S | jj||||	d|d|||d	S )a  
        (For tenancies that support identity domains) Lists the license types for identity domains supported by Oracle Cloud Infrastructure.
        (License types are also referred to as domain types.)

        If `currentLicenseTypeName` is provided, then the request returns license types that the identity domain with the specified license
        type name can change to. Otherwise, the request returns all valid license types currently supported.


        :param str current_license_type_name: (optional)
            The license type of the identity domain.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.AllowedDomainLicenseTypeSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_allowed_domain_license_types.py.html>`__ to see an example of how to use list_allowed_domain_license_types API.
        z/allowedDomainLicenseTypesr   !list_allowed_domain_license_typesz\https://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/ListAllowedDomainLicenseTypes)r   r   current_license_type_namer,   c                    r/   r$   r$   r0   r3   r$   r%   r4   "  r5   zDIdentityClient.list_allowed_domain_license_types.<locals>.<listcomp>z:list_allowed_domain_license_types got unknown kwargs: {!r}ZcurrentLicenseTypeNamer  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   "  rH   zDIdentityClient.list_allowed_domain_license_types.<locals>.<dictcomp>r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   "  rH   r   rI   Nz%list[AllowedDomainLicenseTypeSummary]r   r   r   r!   r#   rQ   rK   rL   rO   rP   re   r   rN   r   r$   r3   r%   r~  !  sh   #
z0IdentityClient.list_allowed_domain_license_typesc                    rO  )a  
        Lists the API signing keys for the specified user. A user can have a maximum of three keys.

        Every user has permission to use this API call for *their own user ID*.  An administrator in your
        organization does not need to write a policy to give users this ability.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.ApiKey`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_api_keys.py.html>`__ to see an example of how to use list_api_keys API.
        rf   /users/{userId}/apiKeysr   list_api_keyszJhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/ApiKey/ListApiKeysr   c                    r/   r$   r$   r0   r3   r$   r%   r4   d"  r5   z0IdentityClient.list_api_keys.<locals>.<listcomp>z&list_api_keys got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   m"  r=   z0IdentityClient.list_api_keys.<locals>.<dictcomp>Nr   r>   r?   r   rI   zlist[ApiKey]r   r   rS  r   r$   r3   r%   r  ?"  l   $zIdentityClient.list_api_keysc                    rO  )aH  
        Lists the auth tokens for the specified user. The returned object contains the token's OCID, but not
        the token itself. The actual token is returned only upon creation.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.AuthToken`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_auth_tokens.py.html>`__ to see an example of how to use list_auth_tokens API.
        rf   r   r   list_auth_tokenszPhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/AuthToken/ListAuthTokensr   c                    r/   r$   r$   r0   r3   r$   r%   r4   "  r5   z3IdentityClient.list_auth_tokens.<locals>.<listcomp>z)list_auth_tokens got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   "  r=   z3IdentityClient.list_auth_tokens.<locals>.<dictcomp>Nr   r>   r?   r   rI   zlist[AuthToken]r   r   rS  r   r$   r3   r%   r  "  rT  zIdentityClient.list_auth_tokensc                    s  dg}d}d}d}d}dg  fddt |D }|r#td	|d|i}	d
d t |	D }	ddd}
| jj|d| jd}|du rIt	j
}|rqt|t	js]| j|
 || j |j| jj|||	|
d|d|||d
S | jj|||	|
d|d|||d	S )a   
        Lists the availability domains in your tenancy. Specify the OCID of either the tenancy or another
        of your compartments as the value for the compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.
        Note that the order of the results returned can change if availability domains are added or removed; therefore, do not
        create a dependency on the list order.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.AvailabilityDomain`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_availability_domains.py.html>`__ to see an example of how to use list_availability_domains API.
        r   z/availabilityDomainsr   list_availability_domainszbhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/AvailabilityDomain/ListAvailabilityDomainsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   #  r5   z<IdentityClient.list_availability_domains.<locals>.<listcomp>z2list_availability_domains got unknown kwargs: {!r}c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ##  rH   z<IdentityClient.list_availability_domains.<locals>.<dictcomp>r?   r   rI   Nzlist[AvailabilityDomain]r   r   r   rS   rT   rU   rV   r    r[   r   r   r   r\   rW   r]   r_   r`   r   ra   rb   r!   r   r#   rQ   rK   rL   rO   rP   re   r   rN   r   r$   r3   r%   r  "  sd   !z(IdentityClient.list_availability_domainsc                    s:  dg}d}d}d}d}g d  fddt |D }|r$td	|d
dg}	||	vr3td|	||dt|dtd}
dd t |
D }
ddd}| jj|d| j	d}|du rct
j}|rt|t
jsw| j| || j |j| jj|||
|d|d|||d
S | jj|||
|d|d|||d	S )a	  
        Lists the resource-types supported by compartment bulk actions. Use this API to help you provide the correct
        resource-type information to the :func:`bulk_delete_resources`
        and :func:`bulk_move_resources` operations. The returned list of
        resource-types provides the appropriate resource-type names to use with the bulk action operations along with
        the type of identifying information you'll need to provide for each resource-type. Most resource-types just
        require an `OCID`__ to identify a specific resource, but some resource-types,
        such as buckets, require you to provide other identifying information.

        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm


        :param str bulk_action_type: (required)
            The type of bulk action.

            Allowed values are: "BULK_MOVE_RESOURCES", "BULK_DELETE_RESOURCES"

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.BulkActionResourceTypeCollection`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_bulk_action_resource_types.py.html>`__ to see an example of how to use list_bulk_action_resource_types API.
        bulkActionTypez%/compartments/bulkActionResourceTypesr   list_bulk_action_resource_typeszthttps://docs.oracle.com/iaas/api/#/en/identity/20160918/BulkActionResourceTypeCollection/ListBulkActionResourceTypesr   r   pagelimitc                    r/   r$   r$   r0   r3   r$   r%   r4   #  r5   zBIdentityClient.list_bulk_action_resource_types.<locals>.<listcomp>z8list_bulk_action_resource_types got unknown kwargs: {!r}ZBULK_MOVE_RESOURCESZBULK_DELETE_RESOURCESz8Invalid value for `bulk_action_type`, must be one of {0}r  r  )r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   #  rH   zBIdentityClient.list_bulk_action_resource_types.<locals>.<dictcomp>r?   r   r   rI   NZ BulkActionResourceTypeCollectionr   r   r   )r!   Zbulk_action_typer#   rQ   rK   rL   rO   rP   re   Zbulk_action_type_allowed_valuesr   rN   r   r$   r3   r%   r  L#  sr   +

z.IdentityClient.list_bulk_action_resource_typesc                    s  g }d}d}d}d}g d  fddt |D }|r#td||d	t|d
td}dd t |D }ddd}	| jj|d| j	d}
|
du rRt
j}
|
rzt|
t
jsf| j|	 |
| j |
j| jj||||	d|d|||d
S | jj||||	d|d|||d	S )a  
        Lists the resource types that support bulk tag editing.


        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.BulkEditTagsResourceTypeCollection`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_bulk_edit_tags_resource_types.py.html>`__ to see an example of how to use list_bulk_edit_tags_resource_types API.
        z/tags/bulkEditResourceTypesr   "list_bulk_edit_tags_resource_typeszxhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/BulkEditTagsResourceTypeCollection/ListBulkEditTagsResourceTypesr  c                    r/   r$   r$   r0   r3   r$   r%   r4   #  r5   zEIdentityClient.list_bulk_edit_tags_resource_types.<locals>.<listcomp>z;list_bulk_edit_tags_resource_types got unknown kwargs: {!r}r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   #  rH   zEIdentityClient.list_bulk_edit_tags_resource_types.<locals>.<dictcomp>r?   r   r   rI   NZ"BulkEditTagsResourceTypeCollectionr   r   r   r  r$   r3   r%   r  #  sf   

z1IdentityClient.list_bulk_edit_tags_resource_typesc                    s   dg}d}d}d}d}g d  fddt |D }|r$td	|d
|v r9ddg}	|d
 |	vr9td|	d|v rNddg}
|d |
vrNtd|
d|v rcddg}|d |vrctd|d|v rxg d}|d |vrxtd|||dt|dt|d
t|dt|dt|dt|dt|dtd	}dd t |D }d d d!}| jj|d"| j	d#}|d$u rt
j}|rt|t
js| j| || j |j| jj||||d%|d&|||d'
S | jj||||d%|d&|||d'	S )(a  
        Lists the compartments in a specified compartment. The members of the list
        returned depends on the values set for several parameters.

        With the exception of the tenancy (root compartment), the ListCompartments operation
        returns only the first-level child compartments in the parent compartment specified in
        `compartmentId`. The list does not include any subcompartments of the child
        compartments (grandchildren).

        The parameter `accessLevel` specifies whether to return only those compartments for which the
        requestor has INSPECT permissions on at least one resource directly
        or indirectly (the resource can be in a subcompartment).

        The parameter `compartmentIdInSubtree` applies only when you perform ListCompartments on the
        tenancy (root compartment). When set to true, the entire hierarchy of compartments can be returned.
        To get a full list of all compartments and subcompartments in the tenancy (root compartment),
        set the parameter `compartmentIdInSubtree` to true and `accessLevel` to ANY.

        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str access_level: (optional)
            Valid values are `ANY` and `ACCESSIBLE`. Default is `ANY`.
            Setting this to `ACCESSIBLE` returns only those compartments for which the
            user has INSPECT permissions directly or indirectly (permissions can be on a
            resource in a subcompartment). For the compartments on which the user indirectly has
            INSPECT permissions, a restricted set of fields is returned.

            When set to `ANY` permissions are not checked.

            Allowed values are: "ANY", "ACCESSIBLE"

        :param bool compartment_id_in_subtree: (optional)
            Default is false. Can only be set to true when performing
            ListCompartments on the tenancy (root compartment).
            When set to true, the hierarchy of compartments is traversed
            and all compartments and subcompartments in the tenancy are
            returned depending on the the setting of `accessLevel`.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.Compartment`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_compartments.py.html>`__ to see an example of how to use list_compartments API.
        r   r   r   list_compartmentszThttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/ListCompartments)
r   r   r  r  access_levelcompartment_id_in_subtreenamesort_by
sort_orderr   c                    r/   r$   r$   r0   r3   r$   r%   r4   $  r5   z4IdentityClient.list_compartments.<locals>.<listcomp>z*list_compartments got unknown kwargs: {!r}r  ANYZ
ACCESSIBLEz4Invalid value for `access_level`, must be one of {0}r  TIMECREATEDNAME/Invalid value for `sort_by`, must be one of {0}r  ASCDESC2Invalid value for `sort_order`, must be one of {0}r   CREATINGr   INACTIVEDELETINGDELETEDr   r  r  r  r  )	r   r  r  ZaccessLevelZcompartmentIdInSubtreer  sortBy	sortOrderr   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   $  rH   z4IdentityClient.list_compartments.<locals>.<dictcomp>r?   r   r   rI   Nzlist[Compartment]r   r   r   )r!   r   r#   rQ   rK   rL   rO   rP   re   Zaccess_level_allowed_valuessort_by_allowed_valuessort_order_allowed_valuesr   r   rN   r   r$   r3   r%   r  $  s   `







z IdentityClient.list_compartmentsc                      dg}d}d}d}d}g d  fddt |D }|r$td	|||d
t|dtd}	dd t |	D }	ddd}
| jj|d| j	d}|du rTt
j}|r|t|t
jsh| j|
 || j |j| jj|||	|
d|d|||d
S | jj|||	|
d|d|||d	S )a  
        Lists all the tags enabled for cost-tracking in the specified tenancy. For information about
        cost-tracking tags, see `Using Cost-tracking Tags`__.

        __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/usingcosttrackingtags.htm


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.Tag`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_cost_tracking_tags.py.html>`__ to see an example of how to use list_cost_tracking_tags API.
        r   z+/tagNamespaces/actions/listCostTrackingTagsr   list_cost_tracking_tagszPhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/ListCostTrackingTagsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   %  r5   z:IdentityClient.list_cost_tracking_tags.<locals>.<listcomp>z0list_cost_tracking_tags got unknown kwargs: {!r}r  r  r   r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   %  rH   z:IdentityClient.list_cost_tracking_tags.<locals>.<dictcomp>r?   r   r   rI   Nz	list[Tag]r   r   r   r  r$   r3   r%   r  $  sh   $

z&IdentityClient.list_cost_tracking_tagsc                    rO  )ax  
        Lists the secret keys for the specified user. The returned object contains the secret key's OCID, but not
        the secret key itself. The actual secret key is returned only upon creation.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.CustomerSecretKeySummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_customer_secret_keys.py.html>`__ to see an example of how to use list_customer_secret_keys API.
        rf   r   r   list_customer_secret_keyszghttps://docs.oracle.com/iaas/api/#/en/identity/20160918/CustomerSecretKeySummary/ListCustomerSecretKeysr   c                    r/   r$   r$   r0   r3   r$   r%   r4   i%  r5   z<IdentityClient.list_customer_secret_keys.<locals>.<listcomp>z2list_customer_secret_keys got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   r%  r=   z<IdentityClient.list_customer_secret_keys.<locals>.<dictcomp>Nr   r>   r?   r   rI   zlist[CustomerSecretKeySummary]r   r   rS  r   r$   r3   r%   r  F%  rT  z(IdentityClient.list_customer_secret_keysc                    sF  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|v rjddg}|d |vrjtd|d|v rddg}|d |vrtd|d|v rg d}|d |vrtd||	dt
|	dt
|	dt
|	dt
|	dt
|	dt
d}dd t |D }dd|	d t
d!}d"d t |D }| jj|	d#| jd$}|du rtj}|rt|tjs| j| || j |j| jj|||	||d%|	d&|||d'S | jj|||	||d%|	d&|||d'
S )(a  
        Lists the DB credentials for the specified user. The returned object contains the credential's OCID


        :param str user_id: (required)
            The OCID of the user.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.DbCredentialSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_db_credentials.py.html>`__ to see an example of how to use list_db_credentials API.
        rf   r   r   list_db_credentialszNhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/ListDbCredentials)	r   r   r,   r  r  r  r  r  r   c                    r/   r$   r$   r0   r3   r$   r%   r4   %  r5   z6IdentityClient.list_db_credentials.<locals>.<listcomp>z,list_db_credentials got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   %  r=   z6IdentityClient.list_db_credentials.<locals>.<dictcomp>Nr   r>   r  r  r  r  r  r  r  r  r   )r  r   r  r  r   r  r  r  )r  r  r  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   &  rH   r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   #&  rH   r   rI   zlist[DbCredentialSummary]r   rk  r   )r!   rn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r  r  r   r   rN   r   r$   r3   r%   r  %  s   ?$






z"IdentityClient.list_db_credentialsc                    s  dg}d}d}d}d}g d  fddt |D }|r$td	|d
|v r9ddg}	|d
 |	vr9td|	d|v rNddg}
|d |
vrNtd|
d|v rcg d}|d |vrctd|||dt|dt|dt|dt|dt|dt|dt|dt|dt|d
t|dt|dtd}dd  t |D }d!d!|d"td#}d$d  t |D }| jj|d%| j	d&}|d'u rt
j}|rt|t
js| j| || j |j| jj||||d(|d)|||d*
S | jj||||d(|d)|||d*	S )+a  
        (For tenancies that support identity domains) Lists all identity domains within a tenancy.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str display_name: (optional)
            The mutable display name of the identity domain.

        :param str url: (optional)
            The region-agnostic identity domain URL.

        :param str home_region_url: (optional)
            The region-specific identity domain URL.

        :param str type: (optional)
            The identity domain type.

        :param str license_type: (optional)
            The license type of the identity domain.

        :param bool is_hidden_on_login: (optional)
            Indicates whether or not the identity domain is visible at the sign-in screen.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state. The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "DELETING", "INACTIVE"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.DomainSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_domains.py.html>`__ to see an example of how to use list_domains API.
        r   r   r   list_domainszQhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/DomainSummary/ListDomains)r   r   display_nameurlhome_region_urltypelicense_typeis_hidden_on_loginr  r  r  r  r  r,   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   &  r5   z/IdentityClient.list_domains.<locals>.<listcomp>z%list_domains got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   )r  r   r  r  r   r  r  r  r  r  r  r  r  r  )r   ZdisplayNamer  ZhomeRegionUrlr  ZlicenseTypeZisHiddenOnLoginr  r  r  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   &  rH   z/IdentityClient.list_domains.<locals>.<dictcomp>r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   &  rH   r   rI   Nzlist[DomainSummary]r   r   r   r!   r   r#   rQ   rK   rL   rO   rP   re   r  r  r   r   rN   r   r$   r3   r%   r  I&  s   Q












zIdentityClient.list_domainsc                      dg}d}d}d}d}g d  fddt |D }|r$td	|d
|v r9ddg}	|d
 |	vr9td|	d|v rNddg}
|d |
vrNtd|
d|v rcg d}|d |vrctd|||dt|dt|dt|d
t|dt|dtd}dd t |D }ddd}| jj|d| j	d}|du rt
j}|rt|t
js| j| || j |j| jj||||d |d!|||d"
S | jj||||d |d!|||d"	S )#aT  
        Lists the dynamic groups in your tenancy. You must specify your tenancy's OCID as the value for
        the compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.DynamicGroup`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_dynamic_groups.py.html>`__ to see an example of how to use list_dynamic_groups API.
        r   r   r   list_dynamic_groupszVhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/DynamicGroup/ListDynamicGroupsr   r   r  r  r  r  r  r   c                    r/   r$   r$   r0   r3   r$   r%   r4   V'  r5   z6IdentityClient.list_dynamic_groups.<locals>.<listcomp>z,list_dynamic_groups got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   r  r   r  r  r  r   r  r  r  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   y'  rH   z6IdentityClient.list_dynamic_groups.<locals>.<dictcomp>r?   r   r   rI   Nzlist[DynamicGroup]r   r   r   r  r$   r3   r%   r  '     ?






	z"IdentityClient.list_dynamic_groupsc                    s
  ddg}d}d}d}d}dg  fdd	t |D }	|	r$td
|	||d}
dd t |
D }
ddd}| jj|d| jd}|du rKt	j
}|rst|t	js_| j| || j |j| jj|||
|d|d|||d
S | jj|||
|d|d|||d	S )a  
        Lists the Fault Domains in your tenancy. Specify the OCID of either the tenancy or another
        of your compartments as the value for the compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str availability_domain: (required)
            The name of the availabilityDomain.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.FaultDomain`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_fault_domains.py.html>`__ to see an example of how to use list_fault_domains API.
        r   availabilityDomainz/faultDomainsr   list_fault_domainszThttps://docs.oracle.com/iaas/api/#/en/identity/20160918/FaultDomain/ListFaultDomainsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   '  r5   z5IdentityClient.list_fault_domains.<locals>.<listcomp>z+list_fault_domains got unknown kwargs: {!r})r   r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   '  rH   z5IdentityClient.list_fault_domains.<locals>.<dictcomp>r?   r   rI   Nzlist[FaultDomain]r   r   r  )r!   r   Zavailability_domainr#   rQ   rK   rL   rO   rP   re   r   rN   r   r$   r3   r%   r  '  sf   "z!IdentityClient.list_fault_domainsc                    r  )#a5  
        Lists the groups in your tenancy. You must specify your tenancy's OCID as the value for
        the compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.Group`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_groups.py.html>`__ to see an example of how to use list_groups API.
        r   r   r   list_groupszHhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Group/ListGroupsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   M(  r5   z.IdentityClient.list_groups.<locals>.<listcomp>z$list_groups got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   r  r   r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   p(  rH   z.IdentityClient.list_groups.<locals>.<dictcomp>r?   r   r   rI   Nzlist[Group]r   r   r   r  r$   r3   r%   r  '  r  zIdentityClient.list_groupsc                      dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|v rjddg}|d |vrjtd||	dt
|	dt
|	dt
d}dd t |D }dd|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	||d|	d|||dS | jj|||	||d|	d|||d
S ) aD	  
        Gets error details for a specified IAM work request. The workRequestID is returned in the opc-workrequest-id header for any asynchronous operation in the Identity and Access Management service.


        :param str iam_work_request_id: (required)
            The OCID of the IAM work request.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.IamWorkRequestErrorSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_iam_work_request_errors.py.html>`__ to see an example of how to use list_iam_work_request_errors API.
        r`  z*/iamWorkRequests/{iamWorkRequestId}/errorsr   list_iam_work_request_errorsz_https://docs.oracle.com/iaas/api/#/en/identity/20160918/IamWorkRequest/ListIamWorkRequestErrorsr   r   r  r  r  r,   c                    r/   r$   r$   r0   r3   r$   r%   r4   (  r5   z?IdentityClient.list_iam_work_request_errors.<locals>.<listcomp>z5list_iam_work_request_errors got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   (  r=   z?IdentityClient.list_iam_work_request_errors.<locals>.<dictcomp>Nr   r>   r  r  r  r  r  r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   (  rH   r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   (  rH   r   rI   z list[IamWorkRequestErrorSummary]r   rk  r   r!   rb  r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r  r   rN   r   r$   r3   r%   r  (     +$



z+IdentityClient.list_iam_work_request_errorsc                    r  ) a5	  
        Gets logs for a specified IAM work request. The workRequestID is returned in the opc-workrequest-id header for any asynchronous operation in the Identity and Access Management service.


        :param str iam_work_request_id: (required)
            The OCID of the IAM work request.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.IamWorkRequestLogSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_iam_work_request_logs.py.html>`__ to see an example of how to use list_iam_work_request_logs API.
        r`  z(/iamWorkRequests/{iamWorkRequestId}/logsr   list_iam_work_request_logszghttps://docs.oracle.com/iaas/api/#/en/identity/20160918/IamWorkRequestLogSummary/ListIamWorkRequestLogsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   U)  r5   z=IdentityClient.list_iam_work_request_logs.<locals>.<listcomp>z3list_iam_work_request_logs got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   ^)  r=   z=IdentityClient.list_iam_work_request_logs.<locals>.<dictcomp>Nr   r>   r  r  r  r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   p)  rH   r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   w)  rH   r   rI   zlist[IamWorkRequestLogSummary]r   rk  r   r  r$   r3   r%   r  )  r  z)IdentityClient.list_iam_work_request_logsc                    sD  dg}d}d}d}d}g d  fddt |D }|r$td	|||d
t|dt|dtd}	dd t |	D }	dd|dtd}
dd t |
D }
| jj|d| j	d}|du rht
j}|rt|t
js|| j|
 || j |j| jj|||	|
d|d|||d
S | jj|||	|
d|d|||d	S )a  
        Lists the IAM work requests in compartment. The workRequestID is returned in the opc-workrequest-id header for any asynchronous operation in the Identity and Access Management service.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str resource_identifier: (optional)
            The identifier of the resource the work request affects.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.IamWorkRequestSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_iam_work_requests.py.html>`__ to see an example of how to use list_iam_work_requests API.
        r   z/iamWorkRequestsr   list_iam_work_requestszahttps://docs.oracle.com/iaas/api/#/en/identity/20160918/IamWorkRequestSummary/ListIamWorkRequests)r   r   r  r  resource_identifierr,   c                    r/   r$   r$   r0   r3   r$   r%   r4   )  r5   z9IdentityClient.list_iam_work_requests.<locals>.<listcomp>z/list_iam_work_requests got unknown kwargs: {!r}r  r  r  r   r  r  ZresourceIdentifierc                 S   rF   rG   r7   r9   r$   r$   r%   r<   )  rH   z9IdentityClient.list_iam_work_requests.<locals>.<dictcomp>r?   r,   rY  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   )  rH   r   rI   Nzlist[IamWorkRequestSummary]r   r   r   r  r$   r3   r%   r  )  sn   (



z%IdentityClient.list_iam_work_requestsc                    s  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|v rjg d}|d |vrjtd||	dt
|	dt
|	dt
|	dt
d}dd t |D }ddd}| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	||d|	d|||dS | jj|||	||d|	d|||d
S )a 	  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Lists the identity provider groups.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.IdentityProviderGroupSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_identity_provider_groups.py.html>`__ to see an example of how to use list_identity_provider_groups API.
        r   z./identityProviders/{identityProviderId}/groupsr   list_identity_provider_groupszohttps://docs.oracle.com/iaas/api/#/en/identity/20160918/IdentityProviderGroupSummary/ListIdentityProviderGroups)r   r   r  r  r  r   c                    r/   r$   r$   r0   r3   r$   r%   r4   F*  r5   z@IdentityClient.list_identity_provider_groups.<locals>.<listcomp>z6list_identity_provider_groups got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   O*  r=   z@IdentityClient.list_identity_provider_groups.<locals>.<dictcomp>Nr   r>   r   r  r   r  r  r  )r  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   b*  rH   r?   r   r   rI   z"list[IdentityProviderGroupSummary]r   rk  r   )r!   r   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   r   rN   r   r$   r3   r%   r  
*  s   -$



z,IdentityClient.list_identity_provider_groupsc                    s  ddg}d}d}d}d}g d  fdd	t |D }	|	r%td
|	d|v r:ddg}
|d |
vr:td|
d|v rOddg}|d |vrOtd|d|v rdg d}|d |vrdtd||||dt|dt|dt|dt|dt|dtd}dd t |D }ddd}| jj|d| j	d}|d u rt
j}|rt|t
js| j| || j |j| jj||||d!|d"|||d#
S | jj||||d!|d"|||d#	S )$a  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Lists all the identity providers in your tenancy. You must specify the identity provider type (e.g., `SAML2` for
        identity providers using the SAML2.0 protocol). You must specify your tenancy's OCID as the value for the
        compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm
        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str protocol: (required)
            The protocol used for federation.

            Allowed values are: "SAML2"

        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.IdentityProvider`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_identity_providers.py.html>`__ to see an example of how to use list_identity_providers API.
        protocolr   r   r   list_identity_providersz^https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdentityProvider/ListIdentityProvidersr  c                    r/   r$   r$   r0   r3   r$   r%   r4   *  r5   z:IdentityClient.list_identity_providers.<locals>.<listcomp>z0list_identity_providers got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   r  r   r  r  r  )r  r   r  r  r  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   
+  rH   z:IdentityClient.list_identity_providers.<locals>.<dictcomp>r?   r   r   rI   Nzlist[IdentityProvider]r   r   r   )r!   r  r   r#   rQ   rK   rL   rO   rP   re   r  r  r   r   rN   r   r$   r3   r%   r  *  s   H







z&IdentityClient.list_identity_providersc                      dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7|	dt
|	dt
d}dd t |D }ddd}| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	||d|	d|||dS | jj|||	||d|	d|||d
S )a  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Lists the group mappings for the specified identity provider.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.IdpGroupMapping`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_idp_group_mappings.py.html>`__ to see an example of how to use list_idp_group_mappings API.
        r   r   r   list_idp_group_mappingsz\https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdpGroupMapping/ListIdpGroupMappingsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   e+  r5   z:IdentityClient.list_idp_group_mappings.<locals>.<listcomp>z0list_idp_group_mappings got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   n+  r=   z:IdentityClient.list_idp_group_mappings.<locals>.<dictcomp>Nr   r>   r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   x+  rH   r?   r   r   rI   zlist[IdpGroupMapping]r   rk  r   )r!   r   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r  3+  sx   %$

z&IdentityClient.list_idp_group_mappingsc                    s  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|v rjddg}|d |vrjtd|d|v rddg}|d |vrtd||	dt
|	dt
|	dt
|	dt
d}dd t |D }ddd}| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	||d|	d |||d!S | jj|||	||d|	d |||d!
S )"a6  
        Lists the MFA TOTP devices for the specified user. The returned object contains the device's OCID, but not
        the seed. The seed is returned only upon creation or when the IAM service regenerates the MFA seed for the device.


        :param str user_id: (required)
            The OCID of the user.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.MfaTotpDeviceSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_mfa_totp_devices.py.html>`__ to see an example of how to use list_mfa_totp_devices API.
        rf   r   r   list_mfa_totp_devicesz_https://docs.oracle.com/iaas/api/#/en/identity/20160918/MfaTotpDeviceSummary/ListMfaTotpDevices)r   r   r  r  r  r  c                    r/   r$   r$   r0   r3   r$   r%   r4   +  r5   z8IdentityClient.list_mfa_totp_devices.<locals>.<listcomp>z.list_mfa_totp_devices got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   +  r=   z8IdentityClient.list_mfa_totp_devices.<locals>.<dictcomp>Nr   r>   r  r  r  r  r  r  r  r  r  r  )r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   	,  rH   r?   r   r   rI   zlist[MfaTotpDeviceSummary]r   rk  r   )r!   rn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r  r  r   rN   r   r$   r3   r%   r  +  s   4$



z$IdentityClient.list_mfa_totp_devicesc                    r  )#a`  
        Lists the network sources in your tenancy. You must specify your tenancy's OCID as the value for
        the compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.NetworkSourcesSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_network_sources.py.html>`__ to see an example of how to use list_network_sources API.
        r   r   r   list_network_sourcesz`https://docs.oracle.com/iaas/api/#/en/identity/20160918/NetworkSourcesSummary/ListNetworkSourcesr  c                    r/   r$   r$   r0   r3   r$   r%   r4   ,  r5   z7IdentityClient.list_network_sources.<locals>.<listcomp>z-list_network_sources got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   r  r   r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ,  rH   z7IdentityClient.list_network_sources.<locals>.<dictcomp>r?   r   r   rI   Nzlist[NetworkSourcesSummary]r   r   r   r  r$   r3   r%   r  4,  r  z#IdentityClient.list_network_sourcesc                      dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7d|v rjg d}|d |vrjtd||	dt
|	dt
|	dt
d}dd t |D }ddd}| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	||d|	d|||dS | jj|||	||d|	d|||d
S )a  
        List of Oauth tokens for the user


        :param str user_id: (required)
            The OCID of the user.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.OAuth2ClientCredentialSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_o_auth_client_credentials.py.html>`__ to see an example of how to use list_o_auth_client_credentials API.
        rf   r   r   list_o_auth_client_credentialszWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/ListOAuthClientCredentialsr   r   r  r  r   c                    r/   r$   r$   r0   r3   r$   r%   r4   -  r5   zAIdentityClient.list_o_auth_client_credentials.<locals>.<listcomp>z7list_o_auth_client_credentials got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   -  r=   zAIdentityClient.list_o_auth_client_credentials.<locals>.<dictcomp>Nr   r>   r   r  r   r  r  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   -  rH   r?   r   r   rI   z#list[OAuth2ClientCredentialSummary]r   rk  r   )r!   rn   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   r   rN   r   r$   r3   r%   r  ,     &$


z-IdentityClient.list_o_auth_client_credentialsc                    r  )#a  
        Lists the policies in the specified compartment (either the tenancy or another of your compartments).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        To determine which policies apply to a particular group or compartment, you must view the individual
        statements inside all your policies. There isn't a way to automatically obtain that information via the API.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.Policy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_policies.py.html>`__ to see an example of how to use list_policies API.
        r   r   r   list_policieszKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Policy/ListPoliciesr  c                    r/   r$   r$   r0   r3   r$   r%   r4   -  r5   z0IdentityClient.list_policies.<locals>.<listcomp>z&list_policies got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   r  r   r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   -  rH   z0IdentityClient.list_policies.<locals>.<dictcomp>r?   r   r   rI   Nzlist[Policy]r   r   r   r  r$   r3   r%   r  J-  s   A






	zIdentityClient.list_policiesc                    rO  )a  
        Lists the region subscriptions for the specified tenancy.


        :param str tenancy_id: (required)
            The OCID of the tenancy.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.RegionSubscription`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_region_subscriptions.py.html>`__ to see an example of how to use list_region_subscriptions API.
        r   r   r   list_region_subscriptionszbhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/RegionSubscription/ListRegionSubscriptionsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   
.  r5   z<IdentityClient.list_region_subscriptions.<locals>.<listcomp>z2list_region_subscriptions got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   .  r=   z<IdentityClient.list_region_subscriptions.<locals>.<dictcomp>Nr   r>   r?   r   rI   zlist[RegionSubscription]r   r   rS  rt  r$   r3   r%   r  -  r]  z(IdentityClient.list_region_subscriptionsc           
         s   g }d}d}d}d}dg  fddt |D }|r"td|d	d	d
}| jj|d| jd}	|	du r:tj	}	|	rat
|	tjsN| j| |	| j |	j| jj|||d|d|||d	S | jj|||d|d|||dS )a  
        Lists all the regions offered by Oracle Cloud Infrastructure.


        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.Region`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_regions.py.html>`__ to see an example of how to use list_regions API.
        z/regionsr   list_regionszJhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Region/ListRegionsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   _.  r5   z/IdentityClient.list_regions.<locals>.<listcomp>z%list_regions got unknown kwargs: {!r}r?   r   rI   Nzlist[Region]r   )rK   rL   rN   rm   r   rO   rP   rQ   )r   rS   rT   rU   r    r[   r   r   r   r\   rW   r]   r_   r`   r   ra   rb   r   r$   r3   r%   r  @.  sZ   zIdentityClient.list_regionsc                    rO  )a}  
        Lists the SMTP credentials for the specified user. The returned object contains the credential's OCID,
        the SMTP user name but not the SMTP password. The SMTP password is returned only upon creation.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.SmtpCredentialSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_smtp_credentials.py.html>`__ to see an example of how to use list_smtp_credentials API.
        rf   r   r   list_smtp_credentialszahttps://docs.oracle.com/iaas/api/#/en/identity/20160918/SmtpCredentialSummary/ListSmtpCredentialsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   .  r5   z8IdentityClient.list_smtp_credentials.<locals>.<listcomp>z.list_smtp_credentials got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   .  r=   z8IdentityClient.list_smtp_credentials.<locals>.<dictcomp>Nr   r>   r?   r   rI   zlist[SmtpCredentialSummary]r   r   rS  r   r$   r3   r%   r  .  rT  z$IdentityClient.list_smtp_credentialsc                    r  )aG  
        Lists available standard tag namespaces that users can create.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.StandardTagNamespaceTemplateSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_standard_tag_namespaces.py.html>`__ to see an example of how to use list_standard_tag_namespaces API.
        r   z#/tags/standardTagNamespaceTemplatesr   list_standard_tag_namespaceszuhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/StandardTagNamespaceTemplateSummary/ListStandardTagNamespacesr  c                    r/   r$   r$   r0   r3   r$   r%   r4   /  r5   z?IdentityClient.list_standard_tag_namespaces.<locals>.<listcomp>z5list_standard_tag_namespaces got unknown kwargs: {!r}r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   /  rH   z?IdentityClient.list_standard_tag_namespaces.<locals>.<dictcomp>r?   r   r   rI   Nz)list[StandardTagNamespaceTemplateSummary]r   r   r   r  r$   r3   r%   r  .  sh   !

z+IdentityClient.list_standard_tag_namespacesc                    rO  )a  
        **Deprecated. Use :func:`list_auth_tokens` instead.**

        Lists the Swift passwords for the specified user. The returned object contains the password's OCID, but not
        the password itself. The actual password is returned only upon creation.


        :param str user_id: (required)
            The OCID of the user.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.SwiftPassword`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_swift_passwords.py.html>`__ to see an example of how to use list_swift_passwords API.
        rf   r   r   list_swift_passwordszXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/SwiftPassword/ListSwiftPasswordsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   h/  r5   z7IdentityClient.list_swift_passwords.<locals>.<listcomp>z-list_swift_passwords got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   q/  r=   z7IdentityClient.list_swift_passwords.<locals>.<dictcomp>Nr   r>   r?   r   rI   zlist[SwiftPassword]r   r   rS  r   r$   r3   r%   r  C/  r  z#IdentityClient.list_swift_passwordsc                    sh  g }d}d}d}d}g d  fddt |D }|r#td|d	|v r7d
g}|d	 |vr7td||dt|dt|dt|dt|dt|d	td}	dd t |	D }	ddd}
| jj|d| j	d}|du rzt
j}|rt|t
js| j|
 || j |j| jj|||	|
d|d|||d
S | jj|||	|
d|d|||d	S )a  
        Lists the tag defaults for tag definitions in the specified compartment.


        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str id: (optional)
            A filter to only return resources that match the specified OCID exactly.

        :param str compartment_id: (optional)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str tag_definition_id: (optional)
            The OCID of the tag definition.

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "ACTIVE"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TagDefaultSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_tag_defaults.py.html>`__ to see an example of how to use list_tag_defaults API.
        r   r   list_tag_defaultszYhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefaultSummary/ListTagDefaults)r   r   r  r  idr   tag_definition_idr   c                    r/   r$   r$   r0   r3   r$   r%   r4   /  r5   z4IdentityClient.list_tag_defaults.<locals>.<listcomp>z*list_tag_defaults got unknown kwargs: {!r}r   r   r   r  r  r  r   r  )r  r  r  r   ZtagDefinitionIdr   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   /  rH   z4IdentityClient.list_tag_defaults.<locals>.<dictcomp>r?   r   r   rI   Nr   r   r   r   )r!   r#   rQ   rK   rL   rO   rP   re   r   r   rN   r   r$   r3   r%   r  /  sz   ,






z IdentityClient.list_tag_defaultsc                    sZ  dg}d}d}d}d}g d  fddt |D }|r$td	|d
|v r9g d}	|d
 |	vr9td|	||dt|dt|dt|d
td}
dd t |
D }
ddd}| jj|d| j	d}|du rst
j}|rt|t
js| j| || j |j| jj|||
|d|d|||d
S | jj|||
|d|d|||d	S )a9	  
        Lists the tag namespaces in the specified compartment.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param bool include_subcompartments: (optional)
            An optional boolean parameter indicating whether to retrieve all tag namespaces in subcompartments. If this
            parameter is not specified, only the tag namespaces defined in the specified compartment are retrieved.

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TagNamespaceSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_tag_namespaces.py.html>`__ to see an example of how to use list_tag_namespaces API.
        r   r   r   list_tag_namespacesz]https://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespaceSummary/ListTagNamespaces)r   r   r  r  include_subcompartmentsr   c                    r/   r$   r$   r0   r3   r$   r%   r4   Q0  r5   z6IdentityClient.list_tag_namespaces.<locals>.<listcomp>z,list_tag_namespaces got unknown kwargs: {!r}r   r   r  r  r  r   r  r  r  )r   r  r  ZincludeSubcompartmentsr   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   d0  rH   z6IdentityClient.list_tag_namespaces.<locals>.<dictcomp>r?   r   r   rI   Nzlist[TagNamespaceSummary]r   r   r   r   r$   r3   r%   r  0  sx   *



z"IdentityClient.list_tag_namespacesc                    r  )a  
        Gets the errors for a work request.


        :param str work_request_id: (required)
            The OCID of the work request.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TaggingWorkRequestErrorSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_tagging_work_request_errors.py.html>`__ to see an example of how to use list_tagging_work_request_errors API.
        ro  z+/taggingWorkRequests/{workRequestId}/errorsr    list_tagging_work_request_errorszshttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TaggingWorkRequestErrorSummary/ListTaggingWorkRequestErrorsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   0  r5   zCIdentityClient.list_tagging_work_request_errors.<locals>.<listcomp>z9list_tagging_work_request_errors got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   0  r=   zCIdentityClient.list_tagging_work_request_errors.<locals>.<dictcomp>Nr   r>   r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   0  rH   r?   r   r   rI   z$list[TaggingWorkRequestErrorSummary]r   rk  r   r!   rr  r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r  0  x   !$

z/IdentityClient.list_tagging_work_request_errorsc                    r  )a  
        Gets the logs for a work request.


        :param str work_request_id: (required)
            The OCID of the work request.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TaggingWorkRequestLogSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_tagging_work_request_logs.py.html>`__ to see an example of how to use list_tagging_work_request_logs API.
        ro  z)/taggingWorkRequests/{workRequestId}/logsr   list_tagging_work_request_logszohttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TaggingWorkRequestLogSummary/ListTaggingWorkRequestLogsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   '1  r5   zAIdentityClient.list_tagging_work_request_logs.<locals>.<listcomp>z7list_tagging_work_request_logs got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   01  r=   zAIdentityClient.list_tagging_work_request_logs.<locals>.<dictcomp>Nr   r>   r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   :1  rH   r?   r   r   rI   z"list[TaggingWorkRequestLogSummary]r   rk  r   r  r$   r3   r%   r  0  r  z-IdentityClient.list_tagging_work_request_logsc                    &  dg}d}d}d}d}g d  fddt |D }|r$td	|||d
t|dt|dtd}	dd t |	D }	ddd}
| jj|d| j	d}|du rYt
j}|rt|t
jsm| j|
 || j |j| jj|||	|
d|d|||d
S | jj|||	|
d|d|||d	S )a  
        Lists the tagging work requests in compartment.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str resource_identifier: (optional)
            The identifier of the resource the work request affects.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TaggingWorkRequestSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_tagging_work_requests.py.html>`__ to see an example of how to use list_tagging_work_requests API.
        r   z/taggingWorkRequestsr   list_tagging_work_requestszihttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TaggingWorkRequestSummary/ListTaggingWorkRequestsr   r   r  r  r  c                    r/   r$   r$   r0   r3   r$   r%   r4   1  r5   z=IdentityClient.list_tagging_work_requests.<locals>.<listcomp>z3list_tagging_work_requests got unknown kwargs: {!r}r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   1  rH   z=IdentityClient.list_tagging_work_requests.<locals>.<dictcomp>r?   r   r   rI   Nzlist[TaggingWorkRequestSummary]r   r   r   r  r$   r3   r%   r  e1  j   $


z)IdentityClient.list_tagging_work_requestsc                    r  )a  
        Lists the tag definitions in the specified tag namespace.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.TagSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_tags.py.html>`__ to see an example of how to use list_tags API.
        ry   r   r   	list_tagszKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagSummary/ListTagsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   1  r5   z,IdentityClient.list_tags.<locals>.<listcomp>z"list_tags got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   2  r=   z,IdentityClient.list_tags.<locals>.<dictcomp>Nr   r>   r   r  r   r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   2  rH   r?   r   r   rI   zlist[TagSummary]r   rk  r   )r!   r|   r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   r   rN   r   r$   r3   r%   r  1  r  zIdentityClient.list_tagsc                    s0  dg}d}d}d}d}g d  fddt |D }|r$td	|||d
t|dt|dt|dtd}	dd t |	D }	ddd}
| jj|d| j	d}|du r^t
j}|rt|t
jsr| j|
 || j |j| jj|||	|
d|d|||d
S | jj|||	|
d|d|||d	S )a
  
        Lists the `UserGroupMembership` objects in your tenancy. You must specify your tenancy's OCID
        as the value for the compartment ID
        (see `Where to Get the Tenancy's OCID and User's OCID`__).
        You must also then filter the list in one of these ways:

        - You can limit the results to just the memberships for a given user by specifying a `userId`.
        - Similarly, you can limit the results to just the memberships for a given group by specifying a `groupId`.
        - You can set both the `userId` and `groupId` to determine if the specified user is in the specified group.
        If the answer is no, the response is an empty list.
        - Although`userId` and `groupId` are not individually required, you must set one of them.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str user_id: (optional)
            The OCID of the user.

        :param str group_id: (optional)
            The OCID of the group.

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.UserGroupMembership`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_user_group_memberships.py.html>`__ to see an example of how to use list_user_group_memberships API.
        r   r~   r   list_user_group_membershipszdhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/UserGroupMembership/ListUserGroupMemberships)r   r   rn   r  r  r  c                    r/   r$   r$   r0   r3   r$   r%   r4   2  r5   z>IdentityClient.list_user_group_memberships.<locals>.<listcomp>z4list_user_group_memberships got unknown kwargs: {!r}rn   r  r  r  )r   rf   r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   2  rH   z>IdentityClient.list_user_group_memberships.<locals>.<dictcomp>r?   r   r   rI   Nzlist[UserGroupMembership]r   r   r   r  r$   r3   r%   r  E2  sl   2



z*IdentityClient.list_user_group_membershipsc                    s  dg}d}d}d}d}g d  fddt |D }|r$td	|d
|v r9ddg}	|d
 |	vr9td|	d|v rNddg}
|d |
vrNtd|
d|v rcg d}|d |vrctd|||dt|dt|dt|dt|dt|d
t|dt|dtd	}dd t |D }ddd}| jj|d| j	d }|d!u rt
j}|rt|t
js| j| || j |j| jj||||d"|d#|||d$
S | jj||||d"|d#|||d$	S )%a  
        Lists the users in your tenancy. You must specify your tenancy's OCID as the value for the
        compartment ID (remember that the tenancy is simply the root compartment).
        See `Where to Get the Tenancy's OCID and User's OCID`__.

        __ https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#five


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str identity_provider_id: (optional)
            The id of the identity provider.

        :param str external_identifier: (optional)
            The id of a user in the identity provider.

        :param str name: (optional)
            A filter to only return resources that match the given name exactly.

        :param str sort_by: (optional)
            The field to sort by. You can provide one sort order (`sortOrder`). Default order for
            TIMECREATED is descending. Default order for NAME is ascending. The NAME
            sort order is case sensitive.

            **Note:** In general, some "List" operations (for example, `ListInstances`) let you
            optionally filter by Availability Domain if the scope of the resource type is within a
            single Availability Domain. If you call one of these "List" operations without specifying
            an Availability Domain, the resources are grouped by Availability Domain, then sorted.

            Allowed values are: "TIMECREATED", "NAME"

        :param str sort_order: (optional)
            The sort order to use, either ascending (`ASC`) or descending (`DESC`). The NAME sort order
            is case sensitive.

            Allowed values are: "ASC", "DESC"

        :param str lifecycle_state: (optional)
            A filter to only return resources that match the given lifecycle state.  The state value is case-insensitive.

            Allowed values are: "CREATING", "ACTIVE", "INACTIVE", "DELETING", "DELETED"

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.User`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_users.py.html>`__ to see an example of how to use list_users API.
        r   r   r   
list_userszFhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/ListUsers)
r   r   r  r  r   external_identifierr  r  r  r   c                    r/   r$   r$   r0   r3   r$   r%   r4   3  r5   z-IdentityClient.list_users.<locals>.<listcomp>z#list_users got unknown kwargs: {!r}r  r  r  r  r  r  r  r  r   r  r   r  r  r   r  r  )	r   r  r  r   ZexternalIdentifierr  r  r  r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   83  rH   z-IdentityClient.list_users.<locals>.<dictcomp>r?   r   r   rI   Nz
list[User]r   r   r   r  r$   r3   r%   r  2  s   E







zIdentityClient.list_usersc                    r  )a  
        Lists the work requests in compartment.


        :param str compartment_id: (required)
            The OCID of the compartment (remember that the tenancy is simply the root compartment).

        :param str page: (optional)
            The value of the `opc-next-page` response header from the previous "List" call.

        :param int limit: (optional)
            The maximum number of items to return in a paginated "List" call.

        :param str resource_identifier: (optional)
            The identifier of the resource the work request affects.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type list of :class:`~oci.identity.models.WorkRequestSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/list_work_requests.py.html>`__ to see an example of how to use list_work_requests API.
        r   z/workRequestsr   list_work_requestsz[https://docs.oracle.com/iaas/api/#/en/identity/20160918/WorkRequestSummary/ListWorkRequestsr  c                    r/   r$   r$   r0   r3   r$   r%   r4   3  r5   z5IdentityClient.list_work_requests.<locals>.<listcomp>z+list_work_requests got unknown kwargs: {!r}r  r  r  r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   3  rH   z5IdentityClient.list_work_requests.<locals>.<dictcomp>r?   r   r   rI   Nzlist[WorkRequestSummary]r   r   r   r  r$   r3   r%   r  a3  r  z!IdentityClient.list_work_requestsc                    r   )aB  
        Move the compartment to a different parent compartment in the same tenancy. When you move a
        compartment, all its contents (subcompartments and resources) are moved with it. Note that
        the `CompartmentId` that you specify in the path is the compartment that you want to move.

        **IMPORTANT**: After you move a compartment to a new parent compartment, the access policies of
        the new parent take effect and the policies of the previous parent no longer apply. Ensure that you
        are aware of the implications for the compartment contents before you move it. For more
        information, see `Moving a Compartment`__.

        __ https://docs.cloud.oracle.com/Content/Identity/compartments/managingcompartments.htm#MoveCompartment


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param oci.identity.models.MoveCompartmentDetails move_compartment_details: (required)
            Request object for moving a compartment.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/move_compartment.py.html>`__ to see an example of how to use move_compartment API.
        r   z5/compartments/{compartmentId}/actions/moveCompartmentr)   move_compartmentzShttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/MoveCompartmentrs   c                    r/   r$   r$   r0   r3   r$   r%   r4   4  r5   z3IdentityClient.move_compartment.<locals>.<listcomp>z)move_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   4  r=   z3IdentityClient.move_compartment.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r-   rt   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   "4  rH   r   rI   r   r   rR   )r!   r   Zmove_compartment_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  3  rM  zIdentityClient.move_compartmentc                    sv  dg}d}d}d}d}g d  fddt |D }|r$td	|d|i}	d
d t |	D }	t |	D ]\}
}|du sMt|t jrTt| dkrTtd|
q7dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||	|d|	d|||d
S | jj|||	|d|	d|||d	S )a/  
        Recover the compartment from DELETED state to ACTIVE state.


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Compartment`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/recover_compartment.py.html>`__ to see an example of how to use recover_compartment API.
        r   z8/compartments/{compartmentId}/actions/recoverCompartmentr)   recover_compartmentzVhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/RecoverCompartmentr  c                    r/   r$   r$   r0   r3   r$   r%   r4   x4  r5   z6IdentityClient.recover_compartment.<locals>.<listcomp>z,recover_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   4  r=   z6IdentityClient.recover_compartment.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   4  rH   r   rI   r   r   r   r   r  r$   r3   r%   r  G4  sr   $$

z"IdentityClient.recover_compartmentc                    rp   )a
  
        Remove a resource lock from a tag default.


        :param str tag_default_id: (required)
            The OCID of the tag default.

        :param oci.identity.models.RemoveLockDetails remove_lock_details: (required)
            Lock that is going to be removed from resource

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagDefault`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/remove_tag_default_lock.py.html>`__ to see an example of how to use remove_tag_default_lock API.
        rq   z./tagDefaults/{tagDefaultId}/actions/removeLockr)   remove_tag_default_lockzWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/RemoveTagDefaultLockrs   c                    r/   r$   r$   r0   r3   r$   r%   r4   4  r5   z:IdentityClient.remove_tag_default_lock.<locals>.<listcomp>z0remove_tag_default_lock got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   4  r=   z:IdentityClient.remove_tag_default_lock.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r-   rt   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   5  rH   r   rI   ru   r   rk   rR   )r!   rv   remove_lock_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  4  rx   z&IdentityClient.remove_tag_default_lockc                    rp   )a
  
        Remove a resource lock from a tag namespace.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param oci.identity.models.RemoveLockDetails remove_lock_details: (required)
            Lock that is going to be removed from resource

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagNamespace`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/remove_tag_namespace_lock.py.html>`__ to see an example of how to use remove_tag_namespace_lock API.
        ry   z2/tagNamespaces/{tagNamespaceId}/actions/removeLockr)   remove_tag_namespace_lockz[https://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/RemoveTagNamespaceLockrs   c                    r/   r$   r$   r0   r3   r$   r%   r4   f5  r5   z<IdentityClient.remove_tag_namespace_lock.<locals>.<listcomp>z2remove_tag_namespace_lock got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   o5  r=   z<IdentityClient.remove_tag_namespace_lock.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r-   rt   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   |5  rH   r   rI   r{   r   rk   rR   )r!   r|   r  r#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  *5  rx   z(IdentityClient.remove_tag_namespace_lockc                    r   )ad  
        Removes a user from a group by deleting the corresponding `UserGroupMembership`.


        :param str user_group_membership_id: (required)
            The OCID of the userGroupMembership.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/remove_user_from_group.py.html>`__ to see an example of how to use remove_user_from_group API.
        rv  rw  r   remove_user_from_groupz_https://docs.oracle.com/iaas/api/#/en/identity/20160918/UserGroupMembership/RemoveUserFromGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4   5  r5   z9IdentityClient.remove_user_from_group.<locals>.<listcomp>z/remove_user_from_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   5  r=   z9IdentityClient.remove_user_from_group.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   5  rH   r   rI   r   rJ   r   ry  r$   r3   r%   r  5  r  z%IdentityClient.remove_user_from_groupc                    rO  )a!  
        Resets the OAuth2 client credentials for the SCIM client associated with this identity provider.


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.ScimClientCredentials`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/reset_idp_scim_client.py.html>`__ to see an example of how to use reset_idp_scim_client API.
        r   z?/identityProviders/{identityProviderId}/actions/resetScimClientr)   reset_idp_scim_clientz`https://docs.oracle.com/iaas/api/#/en/identity/20160918/ScimClientCredentials/ResetIdpScimClientr   c                    r/   r$   r$   r0   r3   r$   r%   r4   '6  r5   z8IdentityClient.reset_idp_scim_client.<locals>.<listcomp>z.reset_idp_scim_client got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   06  r=   z8IdentityClient.reset_idp_scim_client.<locals>.<dictcomp>Nr   r>   r?   r   rI   ZScimClientCredentialsr   r   rS  r  r$   r3   r%   r  6  r]  z$IdentityClient.reset_idp_scim_clientc                    t  ddg}d}d}d}d}	g d  fdd	t |D }
|
r%td
|
||d}dd t |D }t |D ]\}}|du sOt|t jrVt| dkrVtd|q9dd|	dt
d}dd t |D }| jj|	d| jd}|du r~tj}|rt|tjs| j| || j |j| jj|||||d|	d||	|dS | jj|||||d|	d||	|d
S )a*  
        Updates the specified auth token's description.


        :param str user_id: (required)
            The OCID of the user.

        :param str auth_token_id: (required)
            The OCID of the auth token.

        :param oci.identity.models.UpdateAuthTokenDetails update_auth_token_details: (required)
            Request object for updating an auth token.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.AuthToken`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_auth_token.py.html>`__ to see an example of how to use update_auth_token API.
        rf   r   r   PUTupdate_auth_tokenzQhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/AuthToken/UpdateAuthTokenr   c                    r/   r$   r$   r0   r3   r$   r%   r4   6  r5   z4IdentityClient.update_auth_token.<locals>.<listcomp>z*update_auth_token got unknown kwargs: {!r}r   c                 S   r6   r$   r7   r9   r$   r$   r%   r<   6  r=   z4IdentityClient.update_auth_token.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   6  rH   r   rI   r   r   rk   r   )r!   rn   r   Zupdate_auth_token_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  ]6  v   &$
z IdentityClient.update_auth_tokenc                    p  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
d}dd t |D }| jj|	d| jd}|du r|tj}|rt|tjs| j| || j |j| jj|||
||d|	d|||dS | jj|||
||d|	d|||d
S )a.  
        Updates authentication policy for the specified tenancy.


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param oci.identity.models.UpdateAuthenticationPolicyDetails update_authentication_policy_details: (required)
            Request object for updating the authentication policy.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.AuthenticationPolicy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_authentication_policy.py.html>`__ to see an example of how to use update_authentication_policy API.
        r   rP  r  update_authentication_policyzghttps://docs.oracle.com/iaas/api/#/en/identity/20160918/AuthenticationPolicy/UpdateAuthenticationPolicyr   c                    r/   r$   r$   r0   r3   r$   r%   r4   6  r5   z?IdentityClient.update_authentication_policy.<locals>.<listcomp>z5update_authentication_policy got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   7  r=   z?IdentityClient.update_authentication_policy.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   7  rH   r   rI   rR  r   rk   r   )r!   r   Z$update_authentication_policy_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  6  t   #$
z+IdentityClient.update_authentication_policyc                    r  )a  
        Updates the specified compartment's description or name. You can't update the root compartment.


        :param str compartment_id: (required)
            The OCID of the compartment.

        :param oci.identity.models.UpdateCompartmentDetails update_compartment_details: (required)
            Request object for updating a compartment.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Compartment`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_compartment.py.html>`__ to see an example of how to use update_compartment API.
        r   r   r  update_compartmentzUhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Compartment/UpdateCompartmentr   c                    r/   r$   r$   r0   r3   r$   r%   r4   b7  r5   z5IdentityClient.update_compartment.<locals>.<listcomp>z+update_compartment got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   k7  r=   z5IdentityClient.update_compartment.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   v7  rH   r   rI   r   r   rk   r   )r!   r   Zupdate_compartment_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  37  r  z!IdentityClient.update_compartmentc                    r  )al  
        Updates the specified secret key's description.


        :param str user_id: (required)
            The OCID of the user.

        :param str customer_secret_key_id: (required)
            The access token of the secret key.

        :param oci.identity.models.UpdateCustomerSecretKeyDetails update_customer_secret_key_details: (required)
            Request object for updating a secret key.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.CustomerSecretKeySummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_customer_secret_key.py.html>`__ to see an example of how to use update_customer_secret_key API.
        rf   r  r  r  update_customer_secret_keyzhhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/CustomerSecretKeySummary/UpdateCustomerSecretKeyr   c                    r/   r$   r$   r0   r3   r$   r%   r4   7  r5   z=IdentityClient.update_customer_secret_key.<locals>.<listcomp>z3update_customer_secret_key got unknown kwargs: {!r}r  c                 S   r6   r$   r7   r9   r$   r$   r%   r<   7  r=   z=IdentityClient.update_customer_secret_key.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   7  rH   r   rI   ZCustomerSecretKeySummaryr   rk   r   )r!   rn   r  Z"update_customer_secret_key_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  7  r  z)IdentityClient.update_customer_secret_keyc                    sv  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||
|||	d|||d
S | jj|||
|||	d|||d	S )a	  
        (For tenancies that support identity domains) Updates identity domain information and the associated Identity Cloud Service (IDCS) stripe.

        To track the progress of the request, submitting an HTTP GET on the /iamWorkRequests/{iamWorkRequestsId} endpoint retrieves
        the operation's status.


        :param str domain_id: (required)
            The OCID of the identity domain.

        :param oci.identity.models.UpdateDomainDetails update_domain_details: (required)
            Request object for updating the identity domain.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type None
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_domain.py.html>`__ to see an example of how to use update_domain API.
        r(   r  r  update_domainzKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Domain/UpdateDomainr  c                    r/   r$   r$   r0   r3   r$   r%   r4   @8  r5   z0IdentityClient.update_domain.<locals>.<listcomp>z&update_domain got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   I8  r=   z0IdentityClient.update_domain.<locals>.<dictcomp>Nr   r>   r?   r.   r,   r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   U8  rH   r   rI   r   r   r   )r!   rd   Zupdate_domain_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  	8  sr   *$

zIdentityClient.update_domainc                    r  )a  
        Updates the specified dynamic group.


        :param str dynamic_group_id: (required)
            The OCID of the dynamic group.

        :param oci.identity.models.UpdateDynamicGroupDetails update_dynamic_group_details: (required)
            Request object for updating an dynamic group.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.DynamicGroup`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_dynamic_group.py.html>`__ to see an example of how to use update_dynamic_group API.
        r  r  r  update_dynamic_groupzWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/DynamicGroup/UpdateDynamicGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4   8  r5   z7IdentityClient.update_dynamic_group.<locals>.<listcomp>z-update_dynamic_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   8  r=   z7IdentityClient.update_dynamic_group.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   8  rH   r   rI   r   r   rk   r   )r!   r  Zupdate_dynamic_group_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  y8  r  z#IdentityClient.update_dynamic_groupc                    r  )a  
        Updates the specified group.


        :param str group_id: (required)
            The OCID of the group.

        :param oci.identity.models.UpdateGroupDetails update_group_details: (required)
            Request object for updating a group.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Group`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_group.py.html>`__ to see an example of how to use update_group API.
        r  r  r  update_groupzIhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Group/UpdateGroupr   c                    r/   r$   r$   r0   r3   r$   r%   r4   9  r5   z/IdentityClient.update_group.<locals>.<listcomp>z%update_group got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   9  r=   z/IdentityClient.update_group.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   %9  rH   r   rI   r   r   rk   r   )r!   r  Zupdate_group_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  8  r  zIdentityClient.update_groupc                    r  )a  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Updates the specified identity provider.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param oci.identity.models.UpdateIdentityProviderDetails update_identity_provider_details: (required)
            Request object for updating a identity provider.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IdentityProvider`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_identity_provider.py.html>`__ to see an example of how to use update_identity_provider API.
        r   r  r  update_identity_providerz_https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdentityProvider/UpdateIdentityProviderr   c                    r/   r$   r$   r0   r3   r$   r%   r4   ~9  r5   z;IdentityClient.update_identity_provider.<locals>.<listcomp>z1update_identity_provider got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   9  r=   z;IdentityClient.update_identity_provider.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   9  rH   r   rI   r   r   rk   r   )r!   r   Z update_identity_provider_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  K9  st   '$
z'IdentityClient.update_identity_providerc                    r  )a	  
        **Deprecated.** For more information, see `Deprecated IAM Service APIs`__.

        Updates the specified group mapping.

        __ https://docs.cloud.oracle.com/Content/Identity/Reference/deprecatediamapis.htm


        :param str identity_provider_id: (required)
            The OCID of the identity provider.

        :param str mapping_id: (required)
            The OCID of the group mapping.

        :param oci.identity.models.UpdateIdpGroupMappingDetails update_idp_group_mapping_details: (required)
            Request object for updating an identity provider group mapping

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.IdpGroupMapping`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_idp_group_mapping.py.html>`__ to see an example of how to use update_idp_group_mapping API.
        r   r  r  r  update_idp_group_mappingz]https://docs.oracle.com/iaas/api/#/en/identity/20160918/IdpGroupMapping/UpdateIdpGroupMappingr   c                    r/   r$   r$   r0   r3   r$   r%   r4   9  r5   z;IdentityClient.update_idp_group_mapping.<locals>.<listcomp>z1update_idp_group_mapping got unknown kwargs: {!r}r   c                 S   r6   r$   r7   r9   r$   r$   r%   r<   9  r=   z;IdentityClient.update_idp_group_mapping.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   :  rH   r   rI   r   r   rk   r   )r!   r   r"  Z update_idp_group_mapping_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  9  sv   *$
z'IdentityClient.update_idp_group_mappingc                    r  )a  
        Updates the specified network source.


        :param str network_source_id: (required)
            The OCID of the network source.

        :param oci.identity.models.UpdateNetworkSourceDetails update_network_source_details: (required)
            Request object for updating a network source.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.NetworkSources`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_network_source.py.html>`__ to see an example of how to use update_network_source API.
        r&  r'  r  update_network_sourcezZhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/NetworkSources/UpdateNetworkSourcer   c                    r/   r$   r$   r0   r3   r$   r%   r4   X:  r5   z8IdentityClient.update_network_source.<locals>.<listcomp>z.update_network_source got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   a:  r=   z8IdentityClient.update_network_source.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   l:  rH   r   rI   r   r   rk   r   )r!   r*  Zupdate_network_source_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  ):  r  z$IdentityClient.update_network_sourcec                    r  )a  
        Updates Oauth token for the user


        :param str user_id: (required)
            The OCID of the user.

        :param str oauth2_client_credential_id: (required)
            The ID of the Oauth credential.

        :param oci.identity.models.UpdateOAuth2ClientCredentialDetails update_o_auth2_client_credential_details: (required)
            Request object containing the information required to generate an Oauth token.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.OAuth2ClientCredential`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_o_auth_client_credential.py.html>`__ to see an example of how to use update_o_auth_client_credential API.
        rf   r+  r,  r  update_o_auth_client_credentialzXhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/UpdateOAuthClientCredentialr   c                    r/   r$   r$   r0   r3   r$   r%   r4   :  r5   zBIdentityClient.update_o_auth_client_credential.<locals>.<listcomp>z8update_o_auth_client_credential got unknown kwargs: {!r}r.  c                 S   r6   r$   r7   r9   r$   r$   r%   r<   :  r=   zBIdentityClient.update_o_auth_client_credential.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   :  rH   r   rI   r   r   rk   r   )r!   rn   r/  Z(update_o_auth2_client_credential_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  :  r  z.IdentityClient.update_o_auth_client_credentialc                    r  )a4  
        Updates the specified policy. You can update the description or the policy statements themselves.

        Policy changes take effect typically within 10 seconds.


        :param str policy_id: (required)
            The OCID of the policy.

        :param oci.identity.models.UpdatePolicyDetails update_policy_details: (required)
            Request object for updating a policy.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Policy`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_policy.py.html>`__ to see an example of how to use update_policy API.
        r0  r1  r  update_policyzKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Policy/UpdatePolicyr   c                    r/   r$   r$   r0   r3   r$   r%   r4   0;  r5   z0IdentityClient.update_policy.<locals>.<listcomp>z&update_policy got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   9;  r=   z0IdentityClient.update_policy.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   D;  rH   r   rI   r   r   rk   r   )r!   r4  Zupdate_policy_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r   :  st   %$
zIdentityClient.update_policyc                    r  )a]  
        Updates the specified SMTP credential's description.


        :param str user_id: (required)
            The OCID of the user.

        :param str smtp_credential_id: (required)
            The OCID of the SMTP credential.

        :param oci.identity.models.UpdateSmtpCredentialDetails update_smtp_credential_details: (required)
            Request object for updating a SMTP credential.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.SmtpCredentialSummary`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_smtp_credential.py.html>`__ to see an example of how to use update_smtp_credential API.
        rf   r5  r6  r  update_smtp_credentialzbhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/SmtpCredentialSummary/UpdateSmtpCredentialr   c                    r/   r$   r$   r0   r3   r$   r%   r4   ;  r5   z9IdentityClient.update_smtp_credential.<locals>.<listcomp>z/update_smtp_credential got unknown kwargs: {!r}r8  c                 S   r6   r$   r7   r9   r$   r$   r%   r<   ;  r=   z9IdentityClient.update_smtp_credential.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   ;  rH   r   rI   ZSmtpCredentialSummaryr   rk   r   )r!   rn   r9  Zupdate_smtp_credential_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  j;  r  z%IdentityClient.update_smtp_credentialc                    r  )a  
        **Deprecated. Use :func:`update_auth_token` instead.**

        Updates the specified Swift password's description.


        :param str user_id: (required)
            The OCID of the user.

        :param str swift_password_id: (required)
            The OCID of the Swift password.

        :param oci.identity.models.UpdateSwiftPasswordDetails update_swift_password_details: (required)
            Request object for updating a Swift password.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.SwiftPassword`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_swift_password.py.html>`__ to see an example of how to use update_swift_password API.
        rf   r:  r;  r  update_swift_passwordzYhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/SwiftPassword/UpdateSwiftPasswordr   c                    r/   r$   r$   r0   r3   r$   r%   r4   <  r5   z8IdentityClient.update_swift_password.<locals>.<listcomp>z.update_swift_password got unknown kwargs: {!r}r=  c                 S   r6   r$   r7   r9   r$   r$   r%   r<   <  r=   z8IdentityClient.update_swift_password.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<    <  rH   r   rI   r   r   rk   r   )r!   rn   r>  Zupdate_swift_password_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  ;  sv   ($
z$IdentityClient.update_swift_passwordc                    s  ddg}d}d}d}d}	g d  fdd	t |D }
|
r%td
|
||d}dd t |D }t |D ]\}}|du sOt|t jrVt| dkrVtd|q9d|	dt
i}dd t |D }dd|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj||||||d|	d||	|dS | jj||||||d|	d||	|dS )a
  
        Updates the specified tag definition.

        Setting `validator` determines the value type. Tags can use either a static value or a
        list of possible values. Static values are entered by a user applying the tag to a resource.
        Lists are created by you and the user must apply a value from the list. On update, any values
        in a list that were previously set do not change, but new values must pass validation. Values
        already applied to a resource do not change.

        You cannot remove list values that appear in a TagDefault. To remove a list value that
        appears in a TagDefault, first update the TagDefault to use a different value.


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param str tag_name: (required)
            The name of the tag.

        :param oci.identity.models.UpdateTagDetails update_tag_details: (required)
            Request object for updating a tag.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.Tag`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_tag.py.html>`__ to see an example of how to use update_tag API.
        ry   r?  r@  r  
update_tagzEhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/Tag/UpdateTagrB  c                    r/   r$   r$   r0   r3   r$   r%   r4   <  r5   z-IdentityClient.update_tag.<locals>.<listcomp>z#update_tag got unknown kwargs: {!r}rC  c                 S   r6   r$   r7   r9   r$   r$   r%   r<   <  r=   z-IdentityClient.update_tag.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   <  rH   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   <  rH   r   rI   r   r   r   r   )r!   r|   rD  Zupdate_tag_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r  F<  s   2$
zIdentityClient.update_tagc                    s  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7d|	dt
i}dd t |D }dd|	dt
|	dt
d}dd t |D }| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||
|||d|	d|||dS | jj|||
|||d|	d|||dS )a
  
        Updates the specified tag default. If you specify that a value is required, a value is set
        during resource creation (either by the user creating the resource or another tag defualt).
        If no value is set, resource creation is blocked.

        * If the `isRequired` flag is set to "true", the value is set during resource creation.
        * If the `isRequired` flag is set to "false", the value you enter is set during resource creation.


        :param str tag_default_id: (required)
            The OCID of the tag default.

        :param oci.identity.models.UpdateTagDefaultDetails update_tag_default_details: (required)
            Request object for updating a tag default.

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param str opc_request_id: (optional)
            Unique Oracle-assigned identifier for the request. If you need to contact Oracle about a
            particular request, please provide the request ID.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagDefault`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_tag_default.py.html>`__ to see an example of how to use update_tag_default API.
        rq   rF  r  update_tag_defaultzShttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagDefault/UpdateTagDefault)r   r   r   r.   r,   c                    r/   r$   r$   r0   r3   r$   r%   r4   =  r5   z5IdentityClient.update_tag_default.<locals>.<listcomp>z+update_tag_default got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   =  r=   z5IdentityClient.update_tag_default.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   =  rH   r?   r.   r,   r  c                 S   rF   rG   r7   r9   r$   r$   r%   r<   =  rH   r   rI   ru   r   r   r   )r!   rv   Zupdate_tag_default_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r  <  s   /$

z!IdentityClient.update_tag_defaultc                    sz  dg}d}d}d}d}g d  fddt |D }	|	r$td	|	d|i}
d
d t |
D }
t |
D ]\}}|du sMt|t jrTt| dkrTtd|q7d|	dt
i}dd t |D }ddd}| jj|	d| jd}|du rtj}|rt|tjs| j| || j |j| jj|||
|||d|	d|||dS | jj|||
|||d|	d|||dS )a	  
        Updates the the specified tag namespace. You can't update the namespace name.

        Updating `isRetired` to 'true' retires the namespace and all the tag definitions in the namespace. Reactivating a
        namespace (changing `isRetired` from 'true' to 'false') does not reactivate tag definitions.
        To reactivate the tag definitions, you must reactivate each one individually *after* you reactivate the namespace,
        using :func:`update_tag`. For more information about retiring tag namespaces, see
        `Retiring Key Definitions and Namespace Definitions`__.

        You can't add a namespace with the same name as a retired namespace in the same tenancy.

        __ https://docs.cloud.oracle.com/Content/Tagging/Tasks/managingtagsandtagnamespaces.htm#retiringkeys


        :param str tag_namespace_id: (required)
            The OCID of the tag namespace.

        :param oci.identity.models.UpdateTagNamespaceDetails update_tag_namespace_details: (required)
            Request object for updating a namespace.

        :param bool is_lock_override: (optional)
            Whether to override locks (if any exist).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.TagNamespace`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_tag_namespace.py.html>`__ to see an example of how to use update_tag_namespace API.
        ry   rH  r  update_tag_namespacezWhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/TagNamespace/UpdateTagNamespace)r   r   r   c                    r/   r$   r$   r0   r3   r$   r%   r4   }=  r5   z7IdentityClient.update_tag_namespace.<locals>.<listcomp>z-update_tag_namespace got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   =  r=   z7IdentityClient.update_tag_namespace.<locals>.<dictcomp>Nr   r>   r   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   =  rH   r?   r   r   rI   r{   r   r   r   )r!   r|   Zupdate_tag_namespace_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   r   rN   r   r$   r3   r%   r  F=  sz   +$z#IdentityClient.update_tag_namespacec                    r  )a  
        Updates the description of the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param oci.identity.models.UpdateUserDetails update_user_details: (required)
            Request object for updating a user.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.User`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_user.py.html>`__ to see an example of how to use update_user API.
        rf   rJ  r  update_userzGhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/UpdateUserr   c                    r/   r$   r$   r0   r3   r$   r%   r4   =  r5   z.IdentityClient.update_user.<locals>.<listcomp>z$update_user got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   =  r=   z.IdentityClient.update_user.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   =  rH   r   rI   r   r   rk   r   )r!   rn   Zupdate_user_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  =  r  zIdentityClient.update_userc                    r  )a  
        Updates the capabilities of the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param oci.identity.models.UpdateUserCapabilitiesDetails update_user_capabilities_details: (required)
            Request object for updating user capabilities.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.User`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_user_capabilities.py.html>`__ to see an example of how to use update_user_capabilities API.
        rf   z/users/{userId}/capabilitiesr  update_user_capabilitieszShttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/UpdateUserCapabilitiesr   c                    r/   r$   r$   r0   r3   r$   r%   r4   T>  r5   z;IdentityClient.update_user_capabilities.<locals>.<listcomp>z1update_user_capabilities got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   ]>  r=   z;IdentityClient.update_user_capabilities.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   h>  rH   r   rI   r   r   rk   r   )r!   rn   Z update_user_capabilities_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  %>  r  z'IdentityClient.update_user_capabilitiesc                    r  )a  
        Updates the state of the specified user.


        :param str user_id: (required)
            The OCID of the user.

        :param oci.identity.models.UpdateStateDetails update_state_details: (required)
            Request object for updating a user state.

        :param str if_match: (optional)
            For optimistic concurrency control. In the PUT or DELETE call for a resource, set the `if-match`
            parameter to the value of the etag from a previous GET or POST response for that resource.  The resource
            will be updated or deleted only if the etag you provide matches the resource's current etag value.

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.User`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/update_user_state.py.html>`__ to see an example of how to use update_user_state API.
        rf   z/users/{userId}/stater  update_user_statezLhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/User/UpdateUserStater   c                    r/   r$   r$   r0   r3   r$   r%   r4   >  r5   z4IdentityClient.update_user_state.<locals>.<listcomp>z*update_user_state got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   >  r=   z4IdentityClient.update_user_state.<locals>.<dictcomp>Nr   r>   r?   r.   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   >  rH   r   rI   r   r   rk   r   )r!   rn   Zupdate_state_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r  >  r  z IdentityClient.update_user_statec                    r   )a?  
        Uploads an API signing key for the specified user.

        Every user has permission to use this operation to upload a key for *their own user ID*. An
        administrator in your organization does not need to write a policy to give users this ability.
        To compare, administrators who have permission to the tenancy can use this operation to upload a
        key for any user, including themselves.

        **Important:** Even though you have permission to upload an API key, you might not yet
        have permission to do much else. If you try calling an operation unrelated to your own credential
        management (e.g., `ListUsers`, `LaunchInstance`) and receive an "unauthorized" error,
        check with an administrator to confirm which IAM Service group(s) you're in and what access
        you have. Also confirm you're working in the correct compartment.

        After you send your request, the new object's `lifecycleState` will temporarily be CREATING. Before using
        the object, first make sure its `lifecycleState` has changed to ACTIVE.


        :param str user_id: (required)
            The OCID of the user.

        :param oci.identity.models.CreateApiKeyDetails create_api_key_details: (required)
            Request object for uploading an API key for a user.

        :param str opc_retry_token: (optional)
            A token that uniquely identifies a request so it can be retried in case of a timeout or
            server error without risk of executing that same action again. Retry tokens expire after 24
            hours, but can be invalidated before then due to conflicting operations (e.g., if a resource
            has been deleted and purged from the system, then a retry of the original creation request
            may be rejected).

        :param obj retry_strategy: (optional)
            A retry strategy to apply to this specific operation/call. This will override any retry strategy set at the client-level.

            This should be one of the strategies available in the :py:mod:`~oci.retry` module. This operation uses :py:data:`~oci.retry.DEFAULT_RETRY_STRATEGY` as default if no retry strategy is provided.
            The specifics of the default retry strategy are described `here <https://docs.oracle.com/en-us/iaas/tools/python/latest/sdk_behaviors/retries.html>`__.

            To have this operation explicitly not perform any retries, pass an instance of :py:class:`~oci.retry.NoneRetryStrategy`.

        :param bool allow_control_chars: (optional)
            allow_control_chars is a boolean to indicate whether or not this request should allow control characters in the response object.
            By default, the response will not allow control characters in strings

        :return: A :class:`~oci.response.Response` object with data of type :class:`~oci.identity.models.ApiKey`
        :rtype: :class:`~oci.response.Response`

        :example:
        Click `here <https://docs.cloud.oracle.com/en-us/iaas/tools/python-sdk-examples/latest/identity/upload_api_key.py.html>`__ to see an example of how to use upload_api_key API.
        rf   r  r)   upload_api_keyzKhttps://docs.oracle.com/iaas/api/#/en/identity/20160918/ApiKey/UploadApiKeyr   c                    r/   r$   r$   r0   r3   r$   r%   r4   6?  r5   z1IdentityClient.upload_api_key.<locals>.<listcomp>z'upload_api_key got unknown kwargs: {!r}c                 S   r6   r$   r7   r9   r$   r$   r%   r<   ??  r=   z1IdentityClient.upload_api_key.<locals>.<dictcomp>Nr   r>   r?   r-   r   c                 S   rF   rG   r7   r9   r$   r$   r%   r<   J?  rH   r   rI   ZApiKeyr   rk   rR   )r!   rn   Zcreate_api_key_detailsr#   rQ   rK   rL   rO   rP   re   rM   r:   r;   rN   r   r$   r3   r%   r	  >  sv   3$
zIdentityClient.upload_api_keyN)__name__
__module____qualname____doc__r&   r*   rh   rr   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  r  r$  r(  r-  r2  r7  r<  rA  rG  rI  rK  rL  rN  rQ  rU  rW  r\  r^  ra  rc  re  rf  rh  ri  rj  rl  rm  rn  rp  rs  ru  rx  rz  r{  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r	  r$   r$   r$   r%   r      sR   Xxwyy`hv ov z|wpxrhqttqgulwqloy jj zkfbflnbbgjfbfbfh syb hY_cX\c\`\XXb\XXYXXXYYcc[YYq] IdY + > [   m  'p  z XIYa[zullfzv 'f jyybXmiimpiimqimkmo viiir   N)
__future__r   Zoci._vendorr   r   ocir   r   Zoci.base_clientr   Z
oci.configr   r	   Z
oci.signerr
   Zoci.utilr   r   r   Zmodelsr   r8   objectr   r$   r$   r$   r%   <module>   s   