o
    ɶda                     @   s8   d dl mZmZmZ d dlmZ eG dd deZdS )    )formatted_flat_dictNONE_SENTINEL#value_allowed_none_or_none_sentinel)init_model_state_from_kwargsc                   @   s(  e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdd Zedd Zedd Zejdd Zedd Zejdd Zedd  Zejd!d  Zed"d# Zejd$d# Zed%d& Z e jd'd& Z ed(d) Z!e!jd*d) Z!ed+d, Z"e"jd-d, Z"ed.d/ Z#e#jd0d/ Z#ed1d2 Z$e$jd3d2 Z$ed4d5 Z%e%jd6d5 Z%ed7d8 Z&e&jd9d8 Z&ed:d; Z'e'jd<d; Z'ed=d> Z(e(jd?d> Z(ed@dA Z)e)jdBdA Z)edCdD Z*e*jdEdD Z*edFdG Z+e+jdHdG Z+dIdJ Z,dKdL Z-dMdN Z.dOS )PExadataInsightz#
    Exadata insight resource.
    EM_MANAGED_EXTERNAL_EXADATAPE_COMANAGED_EXADATA	DBMACHINEEXACSEXACCFULLHALFQUARTEREIGHTHFLEXDISABLEDENABLED
TERMINATEDCREATINGUPDATINGACTIVEDELETINGDELETEDFAILEDc                 K   s0  i 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| _ i 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$| _d$| _d$| _d$S )%a  
        Initializes a new ExadataInsight object with values from keyword arguments. This class has the following subclasses and if you are using this class as input
        to a service operations then you should favor using a subclass over the base class:

        * :class:`~oci.opsi.models.EmManagedExternalExadataInsight`
        * :class:`~oci.opsi.models.PeComanagedExadataInsight`

        The following keyword arguments are supported (corresponding to the getters/setters of this class):

        :param entity_source:
            The value to assign to the entity_source property of this ExadataInsight.
            Allowed values for this property are: "EM_MANAGED_EXTERNAL_EXADATA", "PE_COMANAGED_EXADATA", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type entity_source: str

        :param id:
            The value to assign to the id property of this ExadataInsight.
        :type id: str

        :param compartment_id:
            The value to assign to the compartment_id property of this ExadataInsight.
        :type compartment_id: str

        :param exadata_name:
            The value to assign to the exadata_name property of this ExadataInsight.
        :type exadata_name: str

        :param exadata_display_name:
            The value to assign to the exadata_display_name property of this ExadataInsight.
        :type exadata_display_name: str

        :param exadata_type:
            The value to assign to the exadata_type property of this ExadataInsight.
            Allowed values for this property are: "DBMACHINE", "EXACS", "EXACC", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type exadata_type: str

        :param exadata_rack_type:
            The value to assign to the exadata_rack_type property of this ExadataInsight.
            Allowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type exadata_rack_type: str

        :param is_virtualized_exadata:
            The value to assign to the is_virtualized_exadata property of this ExadataInsight.
        :type is_virtualized_exadata: bool

        :param status:
            The value to assign to the status property of this ExadataInsight.
            Allowed values for this property are: "DISABLED", "ENABLED", "TERMINATED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type status: str

        :param freeform_tags:
            The value to assign to the freeform_tags property of this ExadataInsight.
        :type freeform_tags: dict(str, str)

        :param defined_tags:
            The value to assign to the defined_tags property of this ExadataInsight.
        :type defined_tags: dict(str, dict(str, object))

        :param system_tags:
            The value to assign to the system_tags property of this ExadataInsight.
        :type system_tags: dict(str, dict(str, object))

        :param time_created:
            The value to assign to the time_created property of this ExadataInsight.
        :type time_created: datetime

        :param time_updated:
            The value to assign to the time_updated property of this ExadataInsight.
        :type time_updated: datetime

        :param lifecycle_state:
            The value to assign to the lifecycle_state property of this ExadataInsight.
            Allowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", 'UNKNOWN_ENUM_VALUE'.
            Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.
        :type lifecycle_state: str

        :param lifecycle_details:
            The value to assign to the lifecycle_details property of this ExadataInsight.
        :type lifecycle_details: str

        entity_sourcestridcompartment_idexadata_nameexadata_display_nameexadata_typeexadata_rack_typeis_virtualized_exadataboolstatusfreeform_tagszdict(str, str)defined_tagszdict(str, dict(str, object))system_tagstime_createddatetimetime_updatedlifecycle_statelifecycle_detailsentitySourceZcompartmentIdZexadataNameZexadataDisplayNameZexadataTypeZexadataRackTypeZisVirtualizedExadataZfreeformTagsZdefinedTagsZ
systemTagsZtimeCreatedZtimeUpdatedZlifecycleStateZlifecycleDetailsN)Zswagger_typesZattribute_map_entity_source_id_compartment_id_exadata_name_exadata_display_name_exadata_type_exadata_rack_type_is_virtualized_exadata_status_freeform_tags_defined_tags_system_tags_time_created_time_updated_lifecycle_state_lifecycle_details)selfkwargs r@   Cusr/lib/python3.10/site-packages/oci/opsi/models/exadata_insight.py__init__^   s   U	
	

zExadataInsight.__init__c                 C   s$   | d }|dkr
dS |dkrdS dS )z
        Given the hash representation of a subtype of this class,
        use the info in the hash to return the class of the subtype.
        r-   r   ZEmManagedExternalExadataInsightr   ZPeComanagedExadataInsightr   r@   )Zobject_dictionarytyper@   r@   rA   get_subtype   s   zExadataInsight.get_subtypec                 C      | j S )a  
        **[Required]** Gets the entity_source of this ExadataInsight.
        Source of the Exadata system.

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


        :return: The entity_source of this ExadataInsight.
        :rtype: str
        )r.   r>   r@   r@   rA   r         zExadataInsight.entity_sourcec                 C   s    ddg}t ||sd}|| _dS )z
        Sets the entity_source of this ExadataInsight.
        Source of the Exadata system.


        :param entity_source: The entity_source of this ExadataInsight.
        :type: str
        r   r   UNKNOWN_ENUM_VALUEN)r   r.   )r>   r   allowed_valuesr@   r@   rA   r   	     


c                 C   rE   )z
        **[Required]** Gets the id of this ExadataInsight.
        Exadata insight identifier


        :return: The id of this ExadataInsight.
        :rtype: str
        r/   rF   r@   r@   rA   r        
zExadataInsight.idc                 C   
   || _ dS )z
        Sets the id of this ExadataInsight.
        Exadata insight identifier


        :param id: The id of this ExadataInsight.
        :type: str
        NrK   )r>   r   r@   r@   rA   r   $     

c                 C   rE   )z
        **[Required]** Gets the compartment_id of this ExadataInsight.
        Compartment identifier of the Exadata insight resource


        :return: The compartment_id of this ExadataInsight.
        :rtype: str
        r0   rF   r@   r@   rA   r   0  rL   zExadataInsight.compartment_idc                 C   rM   )z
        Sets the compartment_id of this ExadataInsight.
        Compartment identifier of the Exadata insight resource


        :param compartment_id: The compartment_id of this ExadataInsight.
        :type: str
        NrO   )r>   r   r@   r@   rA   r   <  rN   c                 C   rE   )aL  
        **[Required]** Gets the exadata_name of this ExadataInsight.
        The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.


        :return: The exadata_name of this ExadataInsight.
        :rtype: str
        r1   rF   r@   r@   rA   r   H  rL   zExadataInsight.exadata_namec                 C   rM   )aH  
        Sets the exadata_name of this ExadataInsight.
        The Exadata system name. If the Exadata systems managed by Enterprise Manager, the name is unique amongst the Exadata systems managed by the same Enterprise Manager.


        :param exadata_name: The exadata_name of this ExadataInsight.
        :type: str
        NrP   )r>   r   r@   r@   rA   r   T  rN   c                 C   rE   )z
        Gets the exadata_display_name of this ExadataInsight.
        The user-friendly name for the Exadata system. The name does not have to be unique.


        :return: The exadata_display_name of this ExadataInsight.
        :rtype: str
        r2   rF   r@   r@   rA   r   `  rL   z#ExadataInsight.exadata_display_namec                 C   rM   )a  
        Sets the exadata_display_name of this ExadataInsight.
        The user-friendly name for the Exadata system. The name does not have to be unique.


        :param exadata_display_name: The exadata_display_name of this ExadataInsight.
        :type: str
        NrQ   )r>   r   r@   r@   rA   r   l  rN   c                 C   rE   )a  
        Gets the exadata_type of this ExadataInsight.
        Operations Insights internal representation of the the Exadata system type.

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


        :return: The exadata_type of this ExadataInsight.
        :rtype: str
        )r3   rF   r@   r@   rA   r    x  rG   zExadataInsight.exadata_typec                 C       g d}t ||sd}|| _dS )z
        Sets the exadata_type of this ExadataInsight.
        Operations Insights internal representation of the the Exadata system type.


        :param exadata_type: The exadata_type of this ExadataInsight.
        :type: str
        )r	   r
   r   rH   N)r   r3   )r>   r    rI   r@   r@   rA   r      rJ   c                 C   rE   )a  
        Gets the exadata_rack_type of this ExadataInsight.
        Exadata rack type.

        Allowed values for this property are: "FULL", "HALF", "QUARTER", "EIGHTH", "FLEX", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The exadata_rack_type of this ExadataInsight.
        :rtype: str
        )r4   rF   r@   r@   rA   r!     rG   z ExadataInsight.exadata_rack_typec                 C   rR   )z
        Sets the exadata_rack_type of this ExadataInsight.
        Exadata rack type.


        :param exadata_rack_type: The exadata_rack_type of this ExadataInsight.
        :type: str
        )r   r   r   r   r   rH   N)r   r4   )r>   r!   rI   r@   r@   rA   r!     rJ   c                 C   rE   )z
        Gets the is_virtualized_exadata of this ExadataInsight.
        true if virtualization is used in the Exadata system


        :return: The is_virtualized_exadata of this ExadataInsight.
        :rtype: bool
        r5   rF   r@   r@   rA   r"     rL   z%ExadataInsight.is_virtualized_exadatac                 C   rM   )z
        Sets the is_virtualized_exadata of this ExadataInsight.
        true if virtualization is used in the Exadata system


        :param is_virtualized_exadata: The is_virtualized_exadata of this ExadataInsight.
        :type: bool
        NrS   )r>   r"   r@   r@   rA   r"     rN   c                 C   rE   )a  
        **[Required]** Gets the status of this ExadataInsight.
        Indicates the status of an Exadata insight in Operations Insights

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


        :return: The status of this ExadataInsight.
        :rtype: str
        )r6   rF   r@   r@   rA   r$     rG   zExadataInsight.statusc                 C   rR   )z
        Sets the status of this ExadataInsight.
        Indicates the status of an Exadata insight in Operations Insights


        :param status: The status of this ExadataInsight.
        :type: str
        )r   r   r   rH   N)r   r6   )r>   r$   rI   r@   r@   rA   r$     rJ   c                 C   rE   )aR  
        **[Required]** Gets the freeform_tags of this ExadataInsight.
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.
        Example: `{"bar-key": "value"}`


        :return: The freeform_tags of this ExadataInsight.
        :rtype: dict(str, str)
        r7   rF   r@   r@   rA   r%        zExadataInsight.freeform_tagsc                 C   rM   )aO  
        Sets the freeform_tags of this ExadataInsight.
        Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.
        Example: `{"bar-key": "value"}`


        :param freeform_tags: The freeform_tags of this ExadataInsight.
        :type: dict(str, str)
        NrT   )r>   r%   r@   r@   rA   r%        
c                 C   rE   )aL  
        **[Required]** Gets the defined_tags of this ExadataInsight.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{"foo-namespace": {"bar-key": "value"}}`


        :return: The defined_tags of this ExadataInsight.
        :rtype: dict(str, dict(str, object))
        r8   rF   r@   r@   rA   r&     rU   zExadataInsight.defined_tagsc                 C   rM   )aH  
        Sets the defined_tags of this ExadataInsight.
        Defined tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{"foo-namespace": {"bar-key": "value"}}`


        :param defined_tags: The defined_tags of this ExadataInsight.
        :type: dict(str, dict(str, object))
        NrW   )r>   r&   r@   r@   rA   r&     rV   c                 C   rE   )aA  
        Gets the system_tags of this ExadataInsight.
        System tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{"orcl-cloud": {"free-tier-retained": "true"}}`


        :return: The system_tags of this ExadataInsight.
        :rtype: dict(str, dict(str, object))
        r9   rF   r@   r@   rA   r'     rU   zExadataInsight.system_tagsc                 C   rM   )aK  
        Sets the system_tags of this ExadataInsight.
        System tags for this resource. Each key is predefined and scoped to a namespace.
        Example: `{"orcl-cloud": {"free-tier-retained": "true"}}`


        :param system_tags: The system_tags of this ExadataInsight.
        :type: dict(str, dict(str, object))
        NrX   )r>   r'   r@   r@   rA   r'   +  rV   c                 C   rE   )a  
        **[Required]** Gets the time_created of this ExadataInsight.
        The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string


        :return: The time_created of this ExadataInsight.
        :rtype: datetime
        r:   rF   r@   r@   rA   r(   8  rL   zExadataInsight.time_createdc                 C   rM   )a   
        Sets the time_created of this ExadataInsight.
        The time the the Exadata insight was first enabled. An RFC3339 formatted datetime string


        :param time_created: The time_created of this ExadataInsight.
        :type: datetime
        NrY   )r>   r(   r@   r@   rA   r(   D  rN   c                 C   rE   )z
        Gets the time_updated of this ExadataInsight.
        The time the Exadata insight was updated. An RFC3339 formatted datetime string


        :return: The time_updated of this ExadataInsight.
        :rtype: datetime
        r;   rF   r@   r@   rA   r*   P  rL   zExadataInsight.time_updatedc                 C   rM   )z
        Sets the time_updated of this ExadataInsight.
        The time the Exadata insight was updated. An RFC3339 formatted datetime string


        :param time_updated: The time_updated of this ExadataInsight.
        :type: datetime
        NrZ   )r>   r*   r@   r@   rA   r*   \  rN   c                 C   rE   )a  
        **[Required]** Gets the lifecycle_state of this ExadataInsight.
        The current state of the Exadata insight.

        Allowed values for this property are: "CREATING", "UPDATING", "ACTIVE", "DELETING", "DELETED", "FAILED", 'UNKNOWN_ENUM_VALUE'.
        Any unrecognized values returned by a service will be mapped to 'UNKNOWN_ENUM_VALUE'.


        :return: The lifecycle_state of this ExadataInsight.
        :rtype: str
        )r<   rF   r@   r@   rA   r+   h  rG   zExadataInsight.lifecycle_statec                 C   rR   )z
        Sets the lifecycle_state of this ExadataInsight.
        The current state of the Exadata insight.


        :param lifecycle_state: The lifecycle_state of this ExadataInsight.
        :type: str
        )r   r   r   r   r   r   rH   N)r   r<   )r>   r+   rI   r@   r@   rA   r+   w  rJ   c                 C   rE   )a3  
        Gets the lifecycle_details of this ExadataInsight.
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.


        :return: The lifecycle_details of this ExadataInsight.
        :rtype: str
        r=   rF   r@   r@   rA   r,     rL   z ExadataInsight.lifecycle_detailsc                 C   rM   )aC  
        Sets the lifecycle_details of this ExadataInsight.
        A message describing the current state in more detail. For example, can be used to provide actionable information for a resource in Failed state.


        :param lifecycle_details: The lifecycle_details of this ExadataInsight.
        :type: str
        Nr[   )r>   r,   r@   r@   rA   r,     rN   c                 C   s   t | S N)r   rF   r@   r@   rA   __repr__  s   zExadataInsight.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__r>   otherr@   r@   rA   __eq__  s   zExadataInsight.__eq__c                 C   s
   | |k S r\   r@   r_   r@   r@   rA   __ne__  s   
zExadataInsight.__ne__N)/__name__
__module____qualname____doc__Z)ENTITY_SOURCE_EM_MANAGED_EXTERNAL_EXADATAZ"ENTITY_SOURCE_PE_COMANAGED_EXADATAZEXADATA_TYPE_DBMACHINEZEXADATA_TYPE_EXACSZEXADATA_TYPE_EXACCZEXADATA_RACK_TYPE_FULLZEXADATA_RACK_TYPE_HALFZEXADATA_RACK_TYPE_QUARTERZEXADATA_RACK_TYPE_EIGHTHZEXADATA_RACK_TYPE_FLEXZSTATUS_DISABLEDZSTATUS_ENABLEDZSTATUS_TERMINATEDZLIFECYCLE_STATE_CREATINGZLIFECYCLE_STATE_UPDATINGZLIFECYCLE_STATE_ACTIVEZLIFECYCLE_STATE_DELETINGZLIFECYCLE_STATE_DELETEDZLIFECYCLE_STATE_FAILEDrB   staticmethodrD   propertyr   setterr   r   r   r   r    r!   r"   r$   r%   r&   r'   r(   r*   r+   r,   r]   ra   rb   r@   r@   r@   rA   r      s     
































r   N)Zoci.utilr   r   r   Zoci.decoratorsr   objectr   r@   r@   r@   rA   <module>   s   