# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from tapi_server.models.base_model_ import Model
from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName  # noqa: F401,E501
from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState  # noqa: F401,E501
from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass  # noqa: F401,E501
from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue  # noqa: F401,E501
from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState  # noqa: F401,E501
from tapi_server.models.tapi_common_operational_state_pac import TapiCommonOperationalStatePac  # noqa: F401,E501
from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection  # noqa: F401,E501
from tapi_server import util


class TapiOamMep(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, name=None, local_id=None, operational_state=None, lifecycle_state=None, layer_protocol_name=None, peer_mep_identifier=None, mep_identifier=None, direction=None):  # noqa: E501
        """TapiOamMep - a model defined in OpenAPI

        :param name: The name of this TapiOamMep.  # noqa: E501
        :type name: List[TapiCommonNameAndValue]
        :param local_id: The local_id of this TapiOamMep.  # noqa: E501
        :type local_id: str
        :param operational_state: The operational_state of this TapiOamMep.  # noqa: E501
        :type operational_state: TapiCommonOperationalState
        :param lifecycle_state: The lifecycle_state of this TapiOamMep.  # noqa: E501
        :type lifecycle_state: TapiCommonLifecycleState
        :param layer_protocol_name: The layer_protocol_name of this TapiOamMep.  # noqa: E501
        :type layer_protocol_name: TapiCommonLayerProtocolName
        :param peer_mep_identifier: The peer_mep_identifier of this TapiOamMep.  # noqa: E501
        :type peer_mep_identifier: List[str]
        :param mep_identifier: The mep_identifier of this TapiOamMep.  # noqa: E501
        :type mep_identifier: str
        :param direction: The direction of this TapiOamMep.  # noqa: E501
        :type direction: TapiCommonTerminationDirection
        """
        self.openapi_types = {
            'name': List[TapiCommonNameAndValue],
            'local_id': str,
            'operational_state': TapiCommonOperationalState,
            'lifecycle_state': TapiCommonLifecycleState,
            'layer_protocol_name': TapiCommonLayerProtocolName,
            'peer_mep_identifier': List[str],
            'mep_identifier': str,
            'direction': TapiCommonTerminationDirection
        }

        self.attribute_map = {
            'name': 'name',
            'local_id': 'local-id',
            'operational_state': 'operational-state',
            'lifecycle_state': 'lifecycle-state',
            'layer_protocol_name': 'layer-protocol-name',
            'peer_mep_identifier': 'peer-mep-identifier',
            'mep_identifier': 'mep-identifier',
            'direction': 'direction'
        }

        self._name = name
        self._local_id = local_id
        self._operational_state = operational_state
        self._lifecycle_state = lifecycle_state
        self._layer_protocol_name = layer_protocol_name
        self._peer_mep_identifier = peer_mep_identifier
        self._mep_identifier = mep_identifier
        self._direction = direction

    @classmethod
    def from_dict(cls, dikt) -> 'TapiOamMep':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The tapi.oam.Mep of this TapiOamMep.  # noqa: E501
        :rtype: TapiOamMep
        """
        return util.deserialize_model(dikt, cls)

    @property
    def name(self):
        """Gets the name of this TapiOamMep.

        List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.  # noqa: E501

        :return: The name of this TapiOamMep.
        :rtype: List[TapiCommonNameAndValue]
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this TapiOamMep.

        List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.  # noqa: E501

        :param name: The name of this TapiOamMep.
        :type name: List[TapiCommonNameAndValue]
        """

        self._name = name

    @property
    def local_id(self):
        """Gets the local_id of this TapiOamMep.

        none  # noqa: E501

        :return: The local_id of this TapiOamMep.
        :rtype: str
        """
        return self._local_id

    @local_id.setter
    def local_id(self, local_id):
        """Sets the local_id of this TapiOamMep.

        none  # noqa: E501

        :param local_id: The local_id of this TapiOamMep.
        :type local_id: str
        """

        self._local_id = local_id

    @property
    def operational_state(self):
        """Gets the operational_state of this TapiOamMep.


        :return: The operational_state of this TapiOamMep.
        :rtype: TapiCommonOperationalState
        """
        return self._operational_state

    @operational_state.setter
    def operational_state(self, operational_state):
        """Sets the operational_state of this TapiOamMep.


        :param operational_state: The operational_state of this TapiOamMep.
        :type operational_state: TapiCommonOperationalState
        """

        self._operational_state = operational_state

    @property
    def lifecycle_state(self):
        """Gets the lifecycle_state of this TapiOamMep.


        :return: The lifecycle_state of this TapiOamMep.
        :rtype: TapiCommonLifecycleState
        """
        return self._lifecycle_state

    @lifecycle_state.setter
    def lifecycle_state(self, lifecycle_state):
        """Sets the lifecycle_state of this TapiOamMep.


        :param lifecycle_state: The lifecycle_state of this TapiOamMep.
        :type lifecycle_state: TapiCommonLifecycleState
        """

        self._lifecycle_state = lifecycle_state

    @property
    def layer_protocol_name(self):
        """Gets the layer_protocol_name of this TapiOamMep.


        :return: The layer_protocol_name of this TapiOamMep.
        :rtype: TapiCommonLayerProtocolName
        """
        return self._layer_protocol_name

    @layer_protocol_name.setter
    def layer_protocol_name(self, layer_protocol_name):
        """Sets the layer_protocol_name of this TapiOamMep.


        :param layer_protocol_name: The layer_protocol_name of this TapiOamMep.
        :type layer_protocol_name: TapiCommonLayerProtocolName
        """

        self._layer_protocol_name = layer_protocol_name

    @property
    def peer_mep_identifier(self):
        """Gets the peer_mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :return: The peer_mep_identifier of this TapiOamMep.
        :rtype: List[str]
        """
        return self._peer_mep_identifier

    @peer_mep_identifier.setter
    def peer_mep_identifier(self, peer_mep_identifier):
        """Sets the peer_mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :param peer_mep_identifier: The peer_mep_identifier of this TapiOamMep.
        :type peer_mep_identifier: List[str]
        """

        self._peer_mep_identifier = peer_mep_identifier

    @property
    def mep_identifier(self):
        """Gets the mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :return: The mep_identifier of this TapiOamMep.
        :rtype: str
        """
        return self._mep_identifier

    @mep_identifier.setter
    def mep_identifier(self, mep_identifier):
        """Sets the mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :param mep_identifier: The mep_identifier of this TapiOamMep.
        :type mep_identifier: str
        """

        self._mep_identifier = mep_identifier

    @property
    def direction(self):
        """Gets the direction of this TapiOamMep.


        :return: The direction of this TapiOamMep.
        :rtype: TapiCommonTerminationDirection
        """
        return self._direction

    @direction.setter
    def direction(self, direction):
        """Sets the direction of this TapiOamMep.


        :param direction: The direction of this TapiOamMep.
        :type direction: TapiCommonTerminationDirection
        """

        self._direction = direction

# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from tapi_server.models.base_model_ import Model
from tapi_server.models.tapi_common_layer_protocol_name import TapiCommonLayerProtocolName  # noqa: F401,E501
from tapi_server.models.tapi_common_lifecycle_state import TapiCommonLifecycleState  # noqa: F401,E501
from tapi_server.models.tapi_common_local_class import TapiCommonLocalClass  # noqa: F401,E501
from tapi_server.models.tapi_common_name_and_value import TapiCommonNameAndValue  # noqa: F401,E501
from tapi_server.models.tapi_common_operational_state import TapiCommonOperationalState  # noqa: F401,E501
from tapi_server.models.tapi_common_operational_state_pac import TapiCommonOperationalStatePac  # noqa: F401,E501
from tapi_server.models.tapi_common_termination_direction import TapiCommonTerminationDirection  # noqa: F401,E501
from tapi_server import util


class TapiOamMep(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, name=None, local_id=None, operational_state=None, lifecycle_state=None, layer_protocol_name=None, peer_mep_identifier=None, mep_identifier=None, direction=None):  # noqa: E501
        """TapiOamMep - a model defined in OpenAPI

        :param name: The name of this TapiOamMep.  # noqa: E501
        :type name: List[TapiCommonNameAndValue]
        :param local_id: The local_id of this TapiOamMep.  # noqa: E501
        :type local_id: str
        :param operational_state: The operational_state of this TapiOamMep.  # noqa: E501
        :type operational_state: TapiCommonOperationalState
        :param lifecycle_state: The lifecycle_state of this TapiOamMep.  # noqa: E501
        :type lifecycle_state: TapiCommonLifecycleState
        :param layer_protocol_name: The layer_protocol_name of this TapiOamMep.  # noqa: E501
        :type layer_protocol_name: TapiCommonLayerProtocolName
        :param peer_mep_identifier: The peer_mep_identifier of this TapiOamMep.  # noqa: E501
        :type peer_mep_identifier: List[str]
        :param mep_identifier: The mep_identifier of this TapiOamMep.  # noqa: E501
        :type mep_identifier: str
        :param direction: The direction of this TapiOamMep.  # noqa: E501
        :type direction: TapiCommonTerminationDirection
        """
        self.openapi_types = {
            'name': List[TapiCommonNameAndValue],
            'local_id': str,
            'operational_state': TapiCommonOperationalState,
            'lifecycle_state': TapiCommonLifecycleState,
            'layer_protocol_name': TapiCommonLayerProtocolName,
            'peer_mep_identifier': List[str],
            'mep_identifier': str,
            'direction': TapiCommonTerminationDirection
        }

        self.attribute_map = {
            'name': 'name',
            'local_id': 'local-id',
            'operational_state': 'operational-state',
            'lifecycle_state': 'lifecycle-state',
            'layer_protocol_name': 'layer-protocol-name',
            'peer_mep_identifier': 'peer-mep-identifier',
            'mep_identifier': 'mep-identifier',
            'direction': 'direction'
        }

        self._name = name
        self._local_id = local_id
        self._operational_state = operational_state
        self._lifecycle_state = lifecycle_state
        self._layer_protocol_name = layer_protocol_name
        self._peer_mep_identifier = peer_mep_identifier
        self._mep_identifier = mep_identifier
        self._direction = direction

    @classmethod
    def from_dict(cls, dikt) -> 'TapiOamMep':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The tapi.oam.Mep of this TapiOamMep.  # noqa: E501
        :rtype: TapiOamMep
        """
        return util.deserialize_model(dikt, cls)

    @property
    def name(self):
        """Gets the name of this TapiOamMep.

        List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.  # noqa: E501

        :return: The name of this TapiOamMep.
        :rtype: List[TapiCommonNameAndValue]
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this TapiOamMep.

        List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.  # noqa: E501

        :param name: The name of this TapiOamMep.
        :type name: List[TapiCommonNameAndValue]
        """

        self._name = name

    @property
    def local_id(self):
        """Gets the local_id of this TapiOamMep.

        none  # noqa: E501

        :return: The local_id of this TapiOamMep.
        :rtype: str
        """
        return self._local_id

    @local_id.setter
    def local_id(self, local_id):
        """Sets the local_id of this TapiOamMep.

        none  # noqa: E501

        :param local_id: The local_id of this TapiOamMep.
        :type local_id: str
        """

        self._local_id = local_id

    @property
    def operational_state(self):
        """Gets the operational_state of this TapiOamMep.


        :return: The operational_state of this TapiOamMep.
        :rtype: TapiCommonOperationalState
        """
        return self._operational_state

    @operational_state.setter
    def operational_state(self, operational_state):
        """Sets the operational_state of this TapiOamMep.


        :param operational_state: The operational_state of this TapiOamMep.
        :type operational_state: TapiCommonOperationalState
        """

        self._operational_state = operational_state

    @property
    def lifecycle_state(self):
        """Gets the lifecycle_state of this TapiOamMep.


        :return: The lifecycle_state of this TapiOamMep.
        :rtype: TapiCommonLifecycleState
        """
        return self._lifecycle_state

    @lifecycle_state.setter
    def lifecycle_state(self, lifecycle_state):
        """Sets the lifecycle_state of this TapiOamMep.


        :param lifecycle_state: The lifecycle_state of this TapiOamMep.
        :type lifecycle_state: TapiCommonLifecycleState
        """

        self._lifecycle_state = lifecycle_state

    @property
    def layer_protocol_name(self):
        """Gets the layer_protocol_name of this TapiOamMep.


        :return: The layer_protocol_name of this TapiOamMep.
        :rtype: TapiCommonLayerProtocolName
        """
        return self._layer_protocol_name

    @layer_protocol_name.setter
    def layer_protocol_name(self, layer_protocol_name):
        """Sets the layer_protocol_name of this TapiOamMep.


        :param layer_protocol_name: The layer_protocol_name of this TapiOamMep.
        :type layer_protocol_name: TapiCommonLayerProtocolName
        """

        self._layer_protocol_name = layer_protocol_name

    @property
    def peer_mep_identifier(self):
        """Gets the peer_mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :return: The peer_mep_identifier of this TapiOamMep.
        :rtype: List[str]
        """
        return self._peer_mep_identifier

    @peer_mep_identifier.setter
    def peer_mep_identifier(self, peer_mep_identifier):
        """Sets the peer_mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :param peer_mep_identifier: The peer_mep_identifier of this TapiOamMep.
        :type peer_mep_identifier: List[str]
        """

        self._peer_mep_identifier = peer_mep_identifier

    @property
    def mep_identifier(self):
        """Gets the mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :return: The mep_identifier of this TapiOamMep.
        :rtype: str
        """
        return self._mep_identifier

    @mep_identifier.setter
    def mep_identifier(self, mep_identifier):
        """Sets the mep_identifier of this TapiOamMep.

        none  # noqa: E501

        :param mep_identifier: The mep_identifier of this TapiOamMep.
        :type mep_identifier: str
        """

        self._mep_identifier = mep_identifier

    @property
    def direction(self):
        """Gets the direction of this TapiOamMep.


        :return: The direction of this TapiOamMep.
        :rtype: TapiCommonTerminationDirection
        """
        return self._direction

    @direction.setter
    def direction(self, direction):
        """Sets the direction of this TapiOamMep.


        :param direction: The direction of this TapiOamMep.
        :type direction: TapiCommonTerminationDirection
        """

        self._direction = direction

# coding: utf-8 # noqa: F401 # noqa: F401 # noqa: F401,E501 # noqa: F401,E501 # noqa: F401,E501 # noqa: F401,E501 # noqa: F401,E501 # noqa: F401,E501 # noqa: F401,E501 NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).      Do not edit the class manually. # noqa: E501 TapiOamMep - a model defined in OpenAPI          :param name: The name of this TapiOamMep.  # noqa: E501         :type name: List[TapiCommonNameAndValue]         :param local_id: The local_id of this TapiOamMep.  # noqa: E501         :type local_id: str         :param operational_state: The operational_state of this TapiOamMep.  # noqa: E501         :type operational_state: TapiCommonOperationalState         :param lifecycle_state: The lifecycle_state of this TapiOamMep.  # noqa: E501         :type lifecycle_state: TapiCommonLifecycleState         :param layer_protocol_name: The layer_protocol_name of this TapiOamMep.  # noqa: E501         :type layer_protocol_name: TapiCommonLayerProtocolName         :param peer_mep_identifier: The peer_mep_identifier of this TapiOamMep.  # noqa: E501         :type peer_mep_identifier: List[str]         :param mep_identifier: The mep_identifier of this TapiOamMep.  # noqa: E501         :type mep_identifier: str         :param direction: The direction of this TapiOamMep.  # noqa: E501         :type direction: TapiCommonTerminationDirection Returns the dict as a model          :param dikt: A dict.         :type: dict         :return: The tapi.oam.Mep of this TapiOamMep.  # noqa: E501         :rtype: TapiOamMep Gets the name of this TapiOamMep.          List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.  # noqa: E501          :return: The name of this TapiOamMep.         :rtype: List[TapiCommonNameAndValue] Sets the name of this TapiOamMep.          List of names. A property of an entity with a value that is unique in some namespace but may change during the life of the entity. A name carries no semantics with respect to the purpose of the entity.  # noqa: E501          :param name: The name of this TapiOamMep.         :type name: List[TapiCommonNameAndValue] Gets the local_id of this TapiOamMep.          none  # noqa: E501          :return: The local_id of this TapiOamMep.         :rtype: str Sets the local_id of this TapiOamMep.          none  # noqa: E501          :param local_id: The local_id of this TapiOamMep.         :type local_id: str Gets the operational_state of this TapiOamMep.           :return: The operational_state of this TapiOamMep.         :rtype: TapiCommonOperationalState Sets the operational_state of this TapiOamMep.           :param operational_state: The operational_state of this TapiOamMep.         :type operational_state: TapiCommonOperationalState Gets the lifecycle_state of this TapiOamMep.           :return: The lifecycle_state of this TapiOamMep.         :rtype: TapiCommonLifecycleState Sets the lifecycle_state of this TapiOamMep.           :param lifecycle_state: The lifecycle_state of this TapiOamMep.         :type lifecycle_state: TapiCommonLifecycleState Gets the layer_protocol_name of this TapiOamMep.           :return: The layer_protocol_name of this TapiOamMep.         :rtype: TapiCommonLayerProtocolName Sets the layer_protocol_name of this TapiOamMep.           :param layer_protocol_name: The layer_protocol_name of this TapiOamMep.         :type layer_protocol_name: TapiCommonLayerProtocolName Gets the peer_mep_identifier of this TapiOamMep.          none  # noqa: E501          :return: The peer_mep_identifier of this TapiOamMep.         :rtype: List[str] Sets the peer_mep_identifier of this TapiOamMep.          none  # noqa: E501          :param peer_mep_identifier: The peer_mep_identifier of this TapiOamMep.         :type peer_mep_identifier: List[str] Gets the mep_identifier of this TapiOamMep.          none  # noqa: E501          :return: The mep_identifier of this TapiOamMep.         :rtype: str Sets the mep_identifier of this TapiOamMep.          none  # noqa: E501          :param mep_identifier: The mep_identifier of this TapiOamMep.         :type mep_identifier: str Gets the direction of this TapiOamMep.           :return: The direction of this TapiOamMep.         :rtype: TapiCommonTerminationDirection Sets the direction of this TapiOamMep.           :param direction: The direction of this TapiOamMep.         :type direction: TapiCommonTerminationDirection