# coding: utf-8

"""
    MailSlurp API

    MailSlurp is an API for sending and receiving emails from dynamically allocated email addresses. It's designed for developers and QA teams to test applications, process inbound emails, send templated notifications, attachments, and more.  ## Resources  - [Homepage](https://www.mailslurp.com) - Get an [API KEY](https://app.mailslurp.com/sign-up/) - Generated [SDK Clients](https://docs.mailslurp.com/) - [Examples](https://github.com/mailslurp/examples) repository  # noqa: E501

    The version of the OpenAPI document: 6.5.2
    Contact: contact@mailslurp.dev
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from mailslurp_client.configuration import Configuration


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

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    openapi_types = {
        'short': 'int',
        'char': 'str',
        'int': 'int',
        'long': 'int',
        'float': 'float',
        'double': 'float',
        'direct': 'bool',
        'read_only': 'bool'
    }

    attribute_map = {
        'short': 'short',
        'char': 'char',
        'int': 'int',
        'long': 'long',
        'float': 'float',
        'double': 'double',
        'direct': 'direct',
        'read_only': 'readOnly'
    }

    def __init__(self, short=None, char=None, int=None, long=None, float=None, double=None, direct=None, read_only=None, local_vars_configuration=None):  # noqa: E501
        """InlineObject1 - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._short = None
        self._char = None
        self._int = None
        self._long = None
        self._float = None
        self._double = None
        self._direct = None
        self._read_only = None
        self.discriminator = None

        if short is not None:
            self.short = short
        if char is not None:
            self.char = char
        if int is not None:
            self.int = int
        if long is not None:
            self.long = long
        if float is not None:
            self.float = float
        if double is not None:
            self.double = double
        if direct is not None:
            self.direct = direct
        if read_only is not None:
            self.read_only = read_only

    @property
    def short(self):
        """Gets the short of this InlineObject1.  # noqa: E501


        :return: The short of this InlineObject1.  # noqa: E501
        :rtype: int
        """
        return self._short

    @short.setter
    def short(self, short):
        """Sets the short of this InlineObject1.


        :param short: The short of this InlineObject1.  # noqa: E501
        :type: int
        """

        self._short = short

    @property
    def char(self):
        """Gets the char of this InlineObject1.  # noqa: E501


        :return: The char of this InlineObject1.  # noqa: E501
        :rtype: str
        """
        return self._char

    @char.setter
    def char(self, char):
        """Sets the char of this InlineObject1.


        :param char: The char of this InlineObject1.  # noqa: E501
        :type: str
        """

        self._char = char

    @property
    def int(self):
        """Gets the int of this InlineObject1.  # noqa: E501


        :return: The int of this InlineObject1.  # noqa: E501
        :rtype: int
        """
        return self._int

    @int.setter
    def int(self, int):
        """Sets the int of this InlineObject1.


        :param int: The int of this InlineObject1.  # noqa: E501
        :type: int
        """

        self._int = int

    @property
    def long(self):
        """Gets the long of this InlineObject1.  # noqa: E501


        :return: The long of this InlineObject1.  # noqa: E501
        :rtype: int
        """
        return self._long

    @long.setter
    def long(self, long):
        """Sets the long of this InlineObject1.


        :param long: The long of this InlineObject1.  # noqa: E501
        :type: int
        """

        self._long = long

    @property
    def float(self):
        """Gets the float of this InlineObject1.  # noqa: E501


        :return: The float of this InlineObject1.  # noqa: E501
        :rtype: float
        """
        return self._float

    @float.setter
    def float(self, float):
        """Sets the float of this InlineObject1.


        :param float: The float of this InlineObject1.  # noqa: E501
        :type: float
        """

        self._float = float

    @property
    def double(self):
        """Gets the double of this InlineObject1.  # noqa: E501


        :return: The double of this InlineObject1.  # noqa: E501
        :rtype: float
        """
        return self._double

    @double.setter
    def double(self, double):
        """Sets the double of this InlineObject1.


        :param double: The double of this InlineObject1.  # noqa: E501
        :type: float
        """

        self._double = double

    @property
    def direct(self):
        """Gets the direct of this InlineObject1.  # noqa: E501


        :return: The direct of this InlineObject1.  # noqa: E501
        :rtype: bool
        """
        return self._direct

    @direct.setter
    def direct(self, direct):
        """Sets the direct of this InlineObject1.


        :param direct: The direct of this InlineObject1.  # noqa: E501
        :type: bool
        """

        self._direct = direct

    @property
    def read_only(self):
        """Gets the read_only of this InlineObject1.  # noqa: E501


        :return: The read_only of this InlineObject1.  # noqa: E501
        :rtype: bool
        """
        return self._read_only

    @read_only.setter
    def read_only(self, read_only):
        """Sets the read_only of this InlineObject1.


        :param read_only: The read_only of this InlineObject1.  # noqa: E501
        :type: bool
        """

        self._read_only = read_only

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, InlineObject1):
            return False

        return self.to_dict() == other.to_dict()

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        if not isinstance(other, InlineObject1):
            return True

        return self.to_dict() != other.to_dict()
