o
    ɶd                     @   sD   d dl mZ ddlmZmZmZ ddlmZ eG dd deZdS )   )Operator    )formatted_flat_dictNONE_SENTINEL#value_allowed_none_or_none_sentinel)init_model_state_from_kwargsc                   @   sR   e Zd ZdZdZdZdd Zedd Zej	dd Zd	d
 Z
dd Zdd ZdS )Splitz
    The information about the split operator. Split operator has one input and many output links. Split operator allows users to take one data set and based on conditions produce many different outputs.
    FIRSTALLc                 K   s   ddddddddddddddd| _ d	d
ddddddddddddd| _d| _d| _d| _d| _d| _d| _d| _d| _	d| _
d| _d| _d| _d| _d| _d| _dS )a  
        Initializes a new Split object with values from keyword arguments. The default value of the :py:attr:`~oci.data_integration.models.Split.model_type` attribute
        of this class is ``SPLIT_OPERATOR`` and it should not be changed.
        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param model_type:
            The value to assign to the model_type property of this Split.
            Allowed values for this property are: "SOURCE_OPERATOR", "FILTER_OPERATOR", "JOINER_OPERATOR", "AGGREGATOR_OPERATOR", "PROJECTION_OPERATOR", "TARGET_OPERATOR", "FLATTEN_OPERATOR", "DISTINCT_OPERATOR", "SORT_OPERATOR", "UNION_OPERATOR", "INTERSECT_OPERATOR", "MINUS_OPERATOR", "MERGE_OPERATOR", "FUNCTION_OPERATOR", "SPLIT_OPERATOR", "START_OPERATOR", "END_OPERATOR", "PIPELINE_OPERATOR", "DECISION_OPERATOR", "TASK_OPERATOR", "EXPRESSION_OPERATOR", "LOOKUP_OPERATOR", "PIVOT_OPERATOR", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type model_type: str

        :param key:
            The value to assign to the key property of this Split.
        :type key: str

        :param model_version:
            The value to assign to the model_version property of this Split.
        :type model_version: str

        :param parent_ref:
            The value to assign to the parent_ref property of this Split.
        :type parent_ref: oci.data_integration.models.ParentReference

        :param name:
            The value to assign to the name property of this Split.
        :type name: str

        :param description:
            The value to assign to the description property of this Split.
        :type description: str

        :param object_version:
            The value to assign to the object_version property of this Split.
        :type object_version: int

        :param input_ports:
            The value to assign to the input_ports property of this Split.
        :type input_ports: list[oci.data_integration.models.InputPort]

        :param output_ports:
            The value to assign to the output_ports property of this Split.
        :type output_ports: list[oci.data_integration.models.TypedObject]

        :param object_status:
            The value to assign to the object_status property of this Split.
        :type object_status: int

        :param identifier:
            The value to assign to the identifier property of this Split.
        :type identifier: str

        :param parameters:
            The value to assign to the parameters property of this Split.
        :type parameters: list[oci.data_integration.models.Parameter]

        :param op_config_values:
            The value to assign to the op_config_values property of this Split.
        :type op_config_values: oci.data_integration.models.ConfigValues

        :param data_routing_strategy:
            The value to assign to the data_routing_strategy property of this Split.
            Allowed values for this property are: "FIRST", "ALL", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type data_routing_strategy: str

        strZParentReferenceintzlist[InputPort]zlist[TypedObject]zlist[Parameter]ZConfigValues)Z
model_typekeyZmodel_versionZ
parent_refnamedescriptionZobject_versionZinput_portsZoutput_portsZobject_status
identifier
parametersZop_config_valuesdata_routing_strategyZ	modelTyper   ZmodelVersionZ	parentRefr   r   ZobjectVersionZ
inputPortsZoutputPortsZobjectStatusr   r   ZopConfigValuesZdataRoutingStrategyNZSPLIT_OPERATOR)Zswagger_typesZattribute_mapZ_model_type_keyZ_model_versionZ_parent_ref_nameZ_descriptionZ_object_versionZ_input_portsZ_output_portsZ_object_statusZ_identifier_parametersZ_op_config_values_data_routing_strategy)selfkwargs r   Eusr/lib/python3.10/site-packages/oci/data_integration/models/split.py__init__   sZ   D
zSplit.__init__c                 C   s   | j S )a-  
        Gets the data_routing_strategy of this Split.
        Specify how to handle data that matches a split condition. Either data that matches the first condition should be removed from further processing by other conditions, or all matched data should be evaluated for all conditions.

        Allowed values for this property are: "FIRST", "ALL", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The data_routing_strategy of this Split.
        :rtype: str
        )r   r   r   r   r   r      s   zSplit.data_routing_strategyc                 C   s    ddg}t ||sd}|| _dS )a  
        Sets the data_routing_strategy of this Split.
        Specify how to handle data that matches a split condition. Either data that matches the first condition should be removed from further processing by other conditions, or all matched data should be evaluated for all conditions.


        :param data_routing_strategy: The data_routing_strategy of this Split.
        :type: str
        r	   r
   ZUNKNOWN_ENUM_VALUEN)r   r   )r   r   Zallowed_valuesr   r   r   r      s   


c                 C   s   t | S N)r   r   r   r   r   __repr__   s   zSplit.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__r   otherr   r   r   __eq__   s   zSplit.__eq__c                 C   s
   | |k S r   r   r    r   r   r   __ne__   s   
zSplit.__ne__N)__name__
__module____qualname____doc__ZDATA_ROUTING_STRATEGY_FIRSTZDATA_ROUTING_STRATEGY_ALLr   propertyr   setterr   r"   r#   r   r   r   r   r      s    u

r   N)	operatorr   Zoci.utilr   r   r   Zoci.decoratorsr   r   r   r   r   r   <module>   s
   