# 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_notification_notification_type import TapiNotificationNotificationType  # noqa: F401,E501
from tapi_server.models.tapi_notification_object_type import TapiNotificationObjectType  # noqa: F401,E501
from tapi_server import util


class TapiNotificationGetsupportednotificationtypesOutput(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    def __init__(self, supported_object_types: List[TapiNotificationObjectType]=None, supported_notification_types: List[TapiNotificationNotificationType]=None):  # noqa: E501
        """TapiNotificationGetsupportednotificationtypesOutput - a model defined in Swagger

        :param supported_object_types: The supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput.  # noqa: E501
        :type supported_object_types: List[TapiNotificationObjectType]
        :param supported_notification_types: The supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput.  # noqa: E501
        :type supported_notification_types: List[TapiNotificationNotificationType]
        """
        self.swagger_types = {
            'supported_object_types': List[TapiNotificationObjectType],
            'supported_notification_types': List[TapiNotificationNotificationType]
        }

        self.attribute_map = {
            'supported_object_types': 'supported-object-types',
            'supported_notification_types': 'supported-notification-types'
        }
        self._supported_object_types = supported_object_types
        self._supported_notification_types = supported_notification_types

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

        :param dikt: A dict.
        :type: dict
        :return: The tapi.notification.getsupportednotificationtypes.Output of this TapiNotificationGetsupportednotificationtypesOutput.  # noqa: E501
        :rtype: TapiNotificationGetsupportednotificationtypesOutput
        """
        return util.deserialize_model(dikt, cls)

    @property
    def supported_object_types(self) -> List[TapiNotificationObjectType]:
        """Gets the supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput.

        none  # noqa: E501

        :return: The supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput.
        :rtype: List[TapiNotificationObjectType]
        """
        return self._supported_object_types

    @supported_object_types.setter
    def supported_object_types(self, supported_object_types: List[TapiNotificationObjectType]):
        """Sets the supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput.

        none  # noqa: E501

        :param supported_object_types: The supported_object_types of this TapiNotificationGetsupportednotificationtypesOutput.
        :type supported_object_types: List[TapiNotificationObjectType]
        """

        self._supported_object_types = supported_object_types

    @property
    def supported_notification_types(self) -> List[TapiNotificationNotificationType]:
        """Gets the supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput.

        none  # noqa: E501

        :return: The supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput.
        :rtype: List[TapiNotificationNotificationType]
        """
        return self._supported_notification_types

    @supported_notification_types.setter
    def supported_notification_types(self, supported_notification_types: List[TapiNotificationNotificationType]):
        """Sets the supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput.

        none  # noqa: E501

        :param supported_notification_types: The supported_notification_types of this TapiNotificationGetsupportednotificationtypesOutput.
        :type supported_notification_types: List[TapiNotificationNotificationType]
        """

        self._supported_notification_types = supported_notification_types
