ruạṛ
a N��f x � @ s( d dl Z d dlmZ G dd� de�ZdS )� N)�WAIT_RESOURCE_NOT_FOUNDc @ sH e Zd ZdZdd� Zg i i fdd�Zg i i fdd�Zg i i fdd �Zg i i fd d�Zg i i fdd �Z g i i fdd�Z g i i fdd�Zg i i fdd�Zg i i fdd�Z g i i fdd�Zg i i fdd�Zg i i fdd�Zg i i fdd�Zg i i fdd�Zg i i fd d!�Zg i i fd"d#�Zg i i fd$d%�Zg i i fd&d'�Zg i i fd(d)�Zg i i fd*d+�Zg i i fd,d-�Zg i i fd.d/�Zg i i fd0d1�Zg i i fd2d3�Zg i i fd4d5�Zg i i fd6d7�Zg i i fd8d9�Zg i i fd:d;�Z g i i fd<d=�Z!g i i fd>d?�Z"g i i fd@dA�Z#g i i fdBdC�Z$g i i fdDdE�Z%g i i fdFdG�Z&g i i fdHdI�Z'dJS )K�#CloudGuardClientCompositeOperationsa� This class provides a wrapper around :py:class:`~oci.cloud_guard.CloudGuardClient` and offers convenience methods for operations that would otherwise need to be chained together. For example, instead of performing an action on a resource (e.g. launching an instance, creating a load balancer) and then using a waiter to wait for the resource to enter a given state, you can call a single method in this class to accomplish the same functionality c K s || _ dS )z� Creates a new CloudGuardClientCompositeOperations object :param CloudGuardClient client: The service client which will be wrapped by this object N)�client)�selfr �kwargs� r ��/sparta/input/_build_configuration/image_build+validate/lib/bmcenv/lib64/python3.9/site-packages/oci/cloud_guard/cloud_guard_client_composite_operations.py�__init__ s z,CloudGuardClientCompositeOperations.__init__c s� | j j||fi |��}|s|S dd� |D �� |jj}z4tj| j | j �|�fd� fdd�i|��}|}|W S ttfy� } z6| j s�d| _ | j d | _ tj j|g| d��W Y d } ~ n>d } ~ 0 ty� } ztj j|g| d��W Y d } ~ n d } ~ 0 0 d S ) a� Calls :py:func:`~oci.cloud_guard.CloudGuardClient.add_compartment` and waits for the :py:class:`~oci.cloud_guard.models.SecurityZone` acted upon to enter the given state(s). :param str security_zone_id: (required) The unique identifier of the security zone (`SecurityZone`) :param oci.cloud_guard.models.AddCompartmentDetails add_compartment_details: (required) The compartment to add to the security zone. :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.cloud_guard.models.SecurityZone.lifecycle_state` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.cloud_guard.CloudGuardClient.add_compartment` :param dict waiter_kwargs: A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait c S s g | ]}|� � �qS r ��lower��.0�wr r r � <listcomp>3 � zZCloudGuardClientCompositeOperations.add_compartment_and_wait_for_state.<locals>.<listcomp>�evaluate_responsec s t | jd�ot | jd��� � v S �N�lifecycle_state��getattr�datar ��r��lowered_wait_for_statesr r �<lambda>: r zXCloudGuardClientCompositeOperations.add_compartment_and_wait_for_state.<locals>.<lambda>�� �a This composite operation is currently not supported in the SDK. Please use the operation from the service client and use waiters as an alternative. For more information on waiters, visit: "https://docs.oracle.com/en-us/iaas/tools/python/latest/api/waiters.html"��partial_results�causeN) r �add_compartmentr �id�oci� wait_until�get_security_zone� NameError� TypeError�args� exceptions�CompositeOperationError� Exception) r �security_zone_id�add_compartment_details�wait_for_states�operation_kwargs� waiter_kwargs�operation_result� waiter_result�result_to_return�er r r �"add_compartment_and_wait_for_state s. � ��&zFCloudGuardClientCompositeOperations.add_compartment_and_wait_for_statec s� | j j||fi |��}|s|S dd� |D �� |jd }z4tj| j | j �|�fd� fdd�i|��}|} | W S ty� } ztjj|g| d��W Y d} ~ n d} ~ 0 0 dS ) a~ Calls :py:func:`~oci.cloud_guard.CloudGuardClient.change_data_source_compartment` and waits for the :py:class:`~oci.cloud_guard.models.WorkRequest` to enter the given state(s). :param str data_source_id: (required) DataSource OCID :param oci.cloud_guard.models.ChangeDataSourceCompartmentDetails change_data_source_compartment_details: (required) The compartment id of the DataSource :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.cloud_guard.models.WorkRequest.status` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.cloud_guard.CloudGuardClient.change_data_source_compartment` :param dict waiter_kwargs: A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait c S s g | ]}|� � �qS r r r r r r r a r ziCloudGuardClientCompositeOperations.change_data_source_compartment_and_wait_for_state.<locals>.<listcomp>�opc-work-request-idr c s t | jd�ot | jd��� � v S �N�statusr r r r r r h r zgCloudGuardClientCompositeOperations.change_data_source_compartment_and_wait_for_state.<locals>.<lambda>r N) r �change_data_source_compartment�headersr$ r% �get_work_requestr, r* r+ )r �data_source_id�&change_data_source_compartment_detailsr/ r0 r1 r2 �wait_for_resource_idr3 r4 r5 r r r �1change_data_source_compartment_and_wait_for_stateH s$ � ��zUCloudGuardClientCompositeOperations.change_data_source_compartment_and_wait_for_statec s� | j j|fi |��}|s|S dd� |D �� |jj}z4tj| j | j �|�fd� fdd�i|��}|}|W S ttfy� } z6| j s�d| _ | j d | _ tj j|g| d��W Y d } ~ n>d } ~ 0 ty� } ztj j|g| d��W Y d } ~ n d } ~ 0 0 d S ) a' Calls :py:func:`~oci.cloud_guard.CloudGuardClient.create_data_mask_rule` and waits for the :py:class:`~oci.cloud_guard.models.DataMaskRule` acted upon to enter the given state(s). :param oci.cloud_guard.models.CreateDataMaskRuleDetails create_data_mask_rule_details: (required) Definition for the new Data Mask Rule. :param list[str] wait_for_states: An array of states to wait on. These should be valid values for :py:attr:`~oci.cloud_guard.models.DataMaskRule.lifecycle_state` :param dict operation_kwargs: A dictionary of keyword arguments to pass to :py:func:`~oci.cloud_guard.CloudGuardClient.create_data_mask_rule` :param dict waiter_kwargs: A dictionary of keyword arguments to pass to the :py:func:`oci.wait_until` function. For example, you could pass ``max_interval_seconds`` or ``max_interval_seconds`` as dictionary keys to modify how long the waiter function will wait between retries and the maximum amount of time it will wait c S s g | ]}|� � �qS r r r r r r r � r z`CloudGuardClientCompositeOperations.create_data_mask_rule_and_wait_for_state.<locals>.<listcomp>r c s t | jd�ot | jd��� � v S r r r r r r r � r z^CloudGuardClientCompositeOperations.create_data_mask_rule_and_wait_for_state.<locals>.<lambda>r r r N) r �create_data_mask_ruler r# r$ r% �get_data_mask_ruler'