o
    ɶd4?                     @   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                   @   sv  e 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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d.d/ Zd0d1 Zd2d3 Zd4S )5ResolverEndpointz
    An OCI DNS resolver endpoint.

    **Warning:** Oracle recommends that you avoid using any confidential information when you supply string values using the API.
    VNICACTIVECREATINGDELETEDDELETINGFAILEDUPDATINGc                 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S )a	  
        Initializes a new ResolverEndpoint 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.dns.models.ResolverVnicEndpoint`

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

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

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

        :param forwarding_address:
            The value to assign to the forwarding_address property of this ResolverEndpoint.
        :type forwarding_address: str

        :param is_forwarding:
            The value to assign to the is_forwarding property of this ResolverEndpoint.
        :type is_forwarding: bool

        :param is_listening:
            The value to assign to the is_listening property of this ResolverEndpoint.
        :type is_listening: bool

        :param listening_address:
            The value to assign to the listening_address property of this ResolverEndpoint.
        :type listening_address: str

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

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

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

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

        :param _self:
            The value to assign to the _self property of this ResolverEndpoint.
        :type _self: str

        strbooldatetime)nameendpoint_typeforwarding_addressis_forwardingis_listeninglistening_addresscompartment_idtime_createdtime_updatedlifecycle_state_selfr   endpointTypeZforwardingAddressZisForwardingZisListeningZlisteningAddressZcompartmentIdZtimeCreatedZtimeUpdatedZlifecycleStateselfN)Zswagger_typesZattribute_map_name_endpoint_type_forwarding_address_is_forwarding_is_listening_listening_address_compartment_id_time_created_time_updated_lifecycle_state_ResolverEndpoint__self)r   kwargs r*   Dusr/lib/python3.10/site-packages/oci/dns/models/resolver_endpoint.py__init__0   sF   ;
zResolverEndpoint.__init__c                 C   s   | d }|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ResolverVnicEndpointr   r*   )Zobject_dictionarytyper*   r*   r+   get_subtype   s   zResolverEndpoint.get_subtypec                 C      | j S )z
        **[Required]** Gets the name of this ResolverEndpoint.
        The name of the resolver endpoint. Must be unique, case-insensitive, within the resolver.


        :return: The name of this ResolverEndpoint.
        :rtype: str
        r   r   r*   r*   r+   r         
zResolverEndpoint.namec                 C   
   || _ dS )z
        Sets the name of this ResolverEndpoint.
        The name of the resolver endpoint. Must be unique, case-insensitive, within the resolver.


        :param name: The name of this ResolverEndpoint.
        :type: str
        Nr0   )r   r   r*   r*   r+   r         

c                 C   r/   )a  
        Gets the endpoint_type of this ResolverEndpoint.
        The type of resolver endpoint. VNIC is currently the only supported type.

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


        :return: The endpoint_type of this ResolverEndpoint.
        :rtype: str
        )r   r1   r*   r*   r+   r         zResolverEndpoint.endpoint_typec                 C   s   dg}t ||s
d}|| _dS )z
        Sets the endpoint_type of this ResolverEndpoint.
        The type of resolver endpoint. VNIC is currently the only supported type.


        :param endpoint_type: The endpoint_type of this ResolverEndpoint.
        :type: str
        r   UNKNOWN_ENUM_VALUEN)r   r   )r   r   allowed_valuesr*   r*   r+   r      s   


c                 C   r/   )as  
        Gets the forwarding_address of this ResolverEndpoint.
        An IP address from which forwarded queries may be sent. For VNIC endpoints, this IP address must be part
        of the subnet and will be assigned by the system if unspecified when isForwarding is true.


        :return: The forwarding_address of this ResolverEndpoint.
        :rtype: str
        r    r1   r*   r*   r+   r         z#ResolverEndpoint.forwarding_addressc                 C   r3   )a  
        Sets the forwarding_address of this ResolverEndpoint.
        An IP address from which forwarded queries may be sent. For VNIC endpoints, this IP address must be part
        of the subnet and will be assigned by the system if unspecified when isForwarding is true.


        :param forwarding_address: The forwarding_address of this ResolverEndpoint.
        :type: str
        Nr8   )r   r   r*   r*   r+   r         
c                 C   r/   )z
        **[Required]** Gets the is_forwarding of this ResolverEndpoint.
        A Boolean flag indicating whether or not the resolver endpoint is for forwarding.


        :return: The is_forwarding of this ResolverEndpoint.
        :rtype: bool
        r!   r1   r*   r*   r+   r      r2   zResolverEndpoint.is_forwardingc                 C   r3   )z
        Sets the is_forwarding of this ResolverEndpoint.
        A Boolean flag indicating whether or not the resolver endpoint is for forwarding.


        :param is_forwarding: The is_forwarding of this ResolverEndpoint.
        :type: bool
        Nr;   )r   r   r*   r*   r+   r      r4   c                 C   r/   )z
        **[Required]** Gets the is_listening of this ResolverEndpoint.
        A Boolean flag indicating whether or not the resolver endpoint is for listening.


        :return: The is_listening of this ResolverEndpoint.
        :rtype: bool
        r"   r1   r*   r*   r+   r     r2   zResolverEndpoint.is_listeningc                 C   r3   )z
        Sets the is_listening of this ResolverEndpoint.
        A Boolean flag indicating whether or not the resolver endpoint is for listening.


        :param is_listening: The is_listening of this ResolverEndpoint.
        :type: bool
        Nr<   )r   r   r*   r*   r+   r     r4   c                 C   r/   )a^  
        Gets the listening_address of this ResolverEndpoint.
        An IP address to listen to queries on. For VNIC endpoints this IP address must be part of the
        subnet and will be assigned by the system if unspecified when isListening is true.


        :return: The listening_address of this ResolverEndpoint.
        :rtype: str
        r#   r1   r*   r*   r+   r     r9   z"ResolverEndpoint.listening_addressc                 C   r3   )an  
        Sets the listening_address of this ResolverEndpoint.
        An IP address to listen to queries on. For VNIC endpoints this IP address must be part of the
        subnet and will be assigned by the system if unspecified when isListening is true.


        :param listening_address: The listening_address of this ResolverEndpoint.
        :type: str
        Nr=   )r   r   r*   r*   r+   r   ,  r:   c                 C   r/   )aY  
        **[Required]** Gets the compartment_id of this ResolverEndpoint.
        The OCID of the owning compartment. This will match the resolver that the resolver endpoint is under
        and will be updated if the resolver's compartment is changed.


        :return: The compartment_id of this ResolverEndpoint.
        :rtype: str
        r$   r1   r*   r*   r+   r   9  r9   zResolverEndpoint.compartment_idc                 C   r3   )aW  
        Sets the compartment_id of this ResolverEndpoint.
        The OCID of the owning compartment. This will match the resolver that the resolver endpoint is under
        and will be updated if the resolver's compartment is changed.


        :param compartment_id: The compartment_id of this ResolverEndpoint.
        :type: str
        Nr>   )r   r   r*   r*   r+   r   F  r:   c                 C   r/   )a\  
        **[Required]** Gets the time_created of this ResolverEndpoint.
        The date and time the resource was created in "YYYY-MM-ddThh:mm:ssZ" format
        with a Z offset, as defined by RFC 3339.

        **Example:** `2016-07-22T17:23:59:60Z`


        :return: The time_created of this ResolverEndpoint.
        :rtype: datetime
        r%   r1   r*   r*   r+   r   S  r5   zResolverEndpoint.time_createdc                 C   r3   )aX  
        Sets the time_created of this ResolverEndpoint.
        The date and time the resource was created in "YYYY-MM-ddThh:mm:ssZ" format
        with a Z offset, as defined by RFC 3339.

        **Example:** `2016-07-22T17:23:59:60Z`


        :param time_created: The time_created of this ResolverEndpoint.
        :type: datetime
        Nr?   )r   r   r*   r*   r+   r   b     
c                 C   r/   )aa  
        **[Required]** Gets the time_updated of this ResolverEndpoint.
        The date and time the resource was last updated in "YYYY-MM-ddThh:mm:ssZ"
        format with a Z offset, as defined by RFC 3339.

        **Example:** `2016-07-22T17:23:59:60Z`


        :return: The time_updated of this ResolverEndpoint.
        :rtype: datetime
        r&   r1   r*   r*   r+   r   q  r5   zResolverEndpoint.time_updatedc                 C   r3   )a]  
        Sets the time_updated of this ResolverEndpoint.
        The date and time the resource was last updated in "YYYY-MM-ddThh:mm:ssZ"
        format with a Z offset, as defined by RFC 3339.

        **Example:** `2016-07-22T17:23:59:60Z`


        :param time_updated: The time_updated of this ResolverEndpoint.
        :type: datetime
        NrA   )r   r   r*   r*   r+   r     r@   c                 C   r/   )a  
        **[Required]** Gets the lifecycle_state of this ResolverEndpoint.
        The current state of the resource.

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


        :return: The lifecycle_state of this ResolverEndpoint.
        :rtype: str
        )r'   r1   r*   r*   r+   r     r5   z ResolverEndpoint.lifecycle_statec                 C   s    g d}t ||sd}|| _dS )z
        Sets the lifecycle_state of this ResolverEndpoint.
        The current state of the resource.


        :param lifecycle_state: The lifecycle_state of this ResolverEndpoint.
        :type: str
        )r   r	   r
   r   r   r   r6   N)r   r'   )r   r   r7   r*   r*   r+   r     s   


c                 C   r/   )z
        **[Required]** Gets the _self of this ResolverEndpoint.
        The canonical absolute URL of the resource.


        :return: The _self of this ResolverEndpoint.
        :rtype: str
        r(   r1   r*   r*   r+   r     r2   zResolverEndpoint._selfc                 C   r3   )z
        Sets the _self of this ResolverEndpoint.
        The canonical absolute URL of the resource.


        :param _self: The _self of this ResolverEndpoint.
        :type: str
        NrB   )r   r   r*   r*   r+   r     r4   c                 C   s   t | S N)r   r1   r*   r*   r+   __repr__  s   zResolverEndpoint.__repr__c                 C   s   |d u rdS | j |j kS )NF)__dict__r   otherr*   r*   r+   __eq__  s   zResolverEndpoint.__eq__c                 C   s
   | |k S rC   r*   rF   r*   r*   r+   __ne__  s   
zResolverEndpoint.__ne__N)__name__
__module____qualname____doc__ZENDPOINT_TYPE_VNICZLIFECYCLE_STATE_ACTIVEZLIFECYCLE_STATE_CREATINGZLIFECYCLE_STATE_DELETEDZLIFECYCLE_STATE_DELETINGZLIFECYCLE_STATE_FAILEDZLIFECYCLE_STATE_UPDATINGr,   staticmethodr.   propertyr   setterr   r   r   r   r   r   r   r   r   r   rD   rH   rI   r*   r*   r*   r+   r      sv    b






















r   N)Zoci.utilr   r   r   Zoci.decoratorsr   objectr   r*   r*   r*   r+   <module>   s   