# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util
from swagger_server.models.configuration_properties import ConfigurationProperties
from swagger_server.models.security_properties import SecurityProperties
from swagger_server.models.data_schema import DataSchema


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

    Do not edit the class manually.
    """

    def __init__(self, id: str=None, type: str=None, configuration_properties: ConfigurationProperties=None, security_properties: SecurityProperties=None, data_schema: DataSchema=None):  # noqa: E501
        """GuardAgent - a model defined in Swagger

        :param id: The id of this GuardAgent.  # noqa: E501
        :type id: str
        :param type: The type of this GuardAgent.  # noqa: E501
        :type type: str
        :param configuration_properties: The configuration_properties of this GuardAgent.  # noqa: E501
        :type configuration_properties: ConfigurationProperties
        :param security_properties: The security_properties of this GuardAgent.  # noqa: E501
        :type security_properties: SecurityProperties
        :param data_schema: The data_schema of this GuardAgent.  # noqa: E501
        :type data_schema: DataSchema
        """
        self.swagger_types = {
            'id': str,
            'type': str,
            'configuration_properties': ConfigurationProperties,
            'security_properties': SecurityProperties,
            'data_schema': DataSchema
        }

        self.attribute_map = {
            'id': 'id',
            'type': 'type',
            'configuration_properties': 'configuration_properties',
            'security_properties': 'security_properties',
            'data_schema': 'data_schema'
        }

        self._id = id
        self._type = type
        self._configuration_properties = configuration_properties
        self._security_properties = security_properties
        self._data_schema = data_schema

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

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

    @property
    def id(self) -> str:
        """Gets the id of this GuardAgent.


        :return: The id of this GuardAgent.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id: str):
        """Sets the id of this GuardAgent.


        :param id: The id of this GuardAgent.
        :type id: str
        """
        if id is None:
            raise ValueError("Invalid value for `id`, must not be `None`")  # noqa: E501

        self._id = id

    @property
    def type(self) -> str:
        """Gets the type of this GuardAgent.


        :return: The type of this GuardAgent.
        :rtype: str
        """
        return self._type

    @type.setter
    def type(self, type: str):
        """Sets the type of this GuardAgent.


        :param type: The type of this GuardAgent.
        :type type: str
        """
        if type is None:
            raise ValueError("Invalid value for `type`, must not be `None`")  # noqa: E501

        self._type = type

    @property
    def configuration_properties(self) -> ConfigurationProperties:
        """Gets the configuration_properties of this GuardAgent.


        :return: The configuration_properties of this GuardAgent.
        :rtype: ConfigurationProperties
        """
        return self._configuration_properties

    @configuration_properties.setter
    def configuration_properties(self, configuration_properties: ConfigurationProperties):
        """Sets the configuration_properties of this GuardAgent.


        :param configuration_properties: The configuration_properties of this GuardAgent.
        :type configuration_properties: ConfigurationProperties
        """
        if configuration_properties is None:
            raise ValueError("Invalid value for `configuration_properties`, must not be `None`")  # noqa: E501

        self._configuration_properties = configuration_properties

    @property
    def security_properties(self) -> SecurityProperties:
        """Gets the security_properties of this GuardAgent.


        :return: The security_properties of this GuardAgent.
        :rtype: SecurityProperties
        """
        return self._security_properties

    @security_properties.setter
    def security_properties(self, security_properties: SecurityProperties):
        """Sets the security_properties of this GuardAgent.


        :param security_properties: The security_properties of this GuardAgent.
        :type security_properties: SecurityProperties
        """
        if security_properties is None:
            raise ValueError("Invalid value for `security_properties`, must not be `None`")  # noqa: E501

        self._security_properties = security_properties

    @property
    def data_schema(self) -> DataSchema:
        """Gets the data_schema of this GuardAgent.


        :return: The data_schema of this GuardAgent.
        :rtype: DataSchema
        """
        return self._data_schema

    @data_schema.setter
    def data_schema(self, data_schema: DataSchema):
        """Sets the data_schema of this GuardAgent.


        :param data_schema: The data_schema of this GuardAgent.
        :type data_schema: DataSchema
        """
        if data_schema is None:
            raise ValueError("Invalid value for `data_schema`, must not be `None`")  # noqa: E501

        self._data_schema = data_schema

# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from swagger_server.models.base_model_ import Model
from swagger_server import util
from swagger_server.models.configuration_properties import ConfigurationProperties
from swagger_server.models.security_properties import SecurityProperties
from swagger_server.models.data_schema import DataSchema


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

    Do not edit the class manually.
    """

    def __init__(self, id: str=None, type: str=None, configuration_properties: ConfigurationProperties=None, security_properties: SecurityProperties=None, data_schema: DataSchema=None):  # noqa: E501
        """GuardAgent - a model defined in Swagger

        :param id: The id of this GuardAgent.  # noqa: E501
        :type id: str
        :param type: The type of this GuardAgent.  # noqa: E501
        :type type: str
        :param configuration_properties: The configuration_properties of this GuardAgent.  # noqa: E501
        :type configuration_properties: ConfigurationProperties
        :param security_properties: The security_properties of this GuardAgent.  # noqa: E501
        :type security_properties: SecurityProperties
        :param data_schema: The data_schema of this GuardAgent.  # noqa: E501
        :type data_schema: DataSchema
        """
        self.swagger_types = {
            'id': str,
            'type': str,
            'configuration_properties': ConfigurationProperties,
            'security_properties': SecurityProperties,
            'data_schema': DataSchema
        }

        self.attribute_map = {
            'id': 'id',
            'type': 'type',
            'configuration_properties': 'configuration_properties',
            'security_properties': 'security_properties',
            'data_schema': 'data_schema'
        }

        self._id = id
        self._type = type
        self._configuration_properties = configuration_properties
        self._security_properties = security_properties
        self._data_schema = data_schema

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

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

    @property
    def id(self) -> str:
        """Gets the id of this GuardAgent.


        :return: The id of this GuardAgent.
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id: str):
        """Sets the id of this GuardAgent.


        :param id: The id of this GuardAgent.
        :type id: str
        """
        if id is None:
            raise ValueError("Invalid value for `id`, must not be `None`")  # noqa: E501

        self._id = id

    @property
    def type(self) -> str:
        """Gets the type of this GuardAgent.


        :return: The type of this GuardAgent.
        :rtype: str
        """
        return self._type

    @type.setter
    def type(self, type: str):
        """Sets the type of this GuardAgent.


        :param type: The type of this GuardAgent.
        :type type: str
        """
        if type is None:
            raise ValueError("Invalid value for `type`, must not be `None`")  # noqa: E501

        self._type = type

    @property
    def configuration_properties(self) -> ConfigurationProperties:
        """Gets the configuration_properties of this GuardAgent.


        :return: The configuration_properties of this GuardAgent.
        :rtype: ConfigurationProperties
        """
        return self._configuration_properties

    @configuration_properties.setter
    def configuration_properties(self, configuration_properties: ConfigurationProperties):
        """Sets the configuration_properties of this GuardAgent.


        :param configuration_properties: The configuration_properties of this GuardAgent.
        :type configuration_properties: ConfigurationProperties
        """
        if configuration_properties is None:
            raise ValueError("Invalid value for `configuration_properties`, must not be `None`")  # noqa: E501

        self._configuration_properties = configuration_properties

    @property
    def security_properties(self) -> SecurityProperties:
        """Gets the security_properties of this GuardAgent.


        :return: The security_properties of this GuardAgent.
        :rtype: SecurityProperties
        """
        return self._security_properties

    @security_properties.setter
    def security_properties(self, security_properties: SecurityProperties):
        """Sets the security_properties of this GuardAgent.


        :param security_properties: The security_properties of this GuardAgent.
        :type security_properties: SecurityProperties
        """
        if security_properties is None:
            raise ValueError("Invalid value for `security_properties`, must not be `None`")  # noqa: E501

        self._security_properties = security_properties

    @property
    def data_schema(self) -> DataSchema:
        """Gets the data_schema of this GuardAgent.


        :return: The data_schema of this GuardAgent.
        :rtype: DataSchema
        """
        return self._data_schema

    @data_schema.setter
    def data_schema(self, data_schema: DataSchema):
        """Sets the data_schema of this GuardAgent.


        :param data_schema: The data_schema of this GuardAgent.
        :type data_schema: DataSchema
        """
        if data_schema is None:
            raise ValueError("Invalid value for `data_schema`, must not be `None`")  # noqa: E501

        self._data_schema = data_schema

# coding: utf-8 # noqa: F401 # noqa: F401 NOTE: This class is auto generated by the swagger code generator program.      Do not edit the class manually. # noqa: E501 GuardAgent - a model defined in Swagger          :param id: The id of this GuardAgent.  # noqa: E501         :type id: str         :param type: The type of this GuardAgent.  # noqa: E501         :type type: str         :param configuration_properties: The configuration_properties of this GuardAgent.  # noqa: E501         :type configuration_properties: ConfigurationProperties         :param security_properties: The security_properties of this GuardAgent.  # noqa: E501         :type security_properties: SecurityProperties         :param data_schema: The data_schema of this GuardAgent.  # noqa: E501         :type data_schema: DataSchema Returns the dict as a model          :param dikt: A dict.         :type: dict         :return: The GuardAgent of this GuardAgent.  # noqa: E501         :rtype: GuardAgent Gets the id of this GuardAgent.           :return: The id of this GuardAgent.         :rtype: str Sets the id of this GuardAgent.           :param id: The id of this GuardAgent.         :type id: str # noqa: E501 Gets the type of this GuardAgent.           :return: The type of this GuardAgent.         :rtype: str Sets the type of this GuardAgent.           :param type: The type of this GuardAgent.         :type type: str # noqa: E501 Gets the configuration_properties of this GuardAgent.           :return: The configuration_properties of this GuardAgent.         :rtype: ConfigurationProperties Sets the configuration_properties of this GuardAgent.           :param configuration_properties: The configuration_properties of this GuardAgent.         :type configuration_properties: ConfigurationProperties # noqa: E501 Gets the security_properties of this GuardAgent.           :return: The security_properties of this GuardAgent.         :rtype: SecurityProperties Sets the security_properties of this GuardAgent.           :param security_properties: The security_properties of this GuardAgent.         :type security_properties: SecurityProperties # noqa: E501 Gets the data_schema of this GuardAgent.           :return: The data_schema of this GuardAgent.         :rtype: DataSchema Sets the data_schema of this GuardAgent.           :param data_schema: The data_schema of this GuardAgent.         :type data_schema: DataSchema # noqa: E501