# coding: utf-8

"""
    Aron API

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)  # noqa: E501

    The version of the OpenAPI document: 1.0.0
    Generated by: https://openapi-generator.tech
"""


try:
    from inspect import getfullargspec
except ImportError:
    from inspect import getargspec as getfullargspec
import pprint
import re  # noqa: F401
import six

from openapi_client.configuration import Configuration


class DashboardChartCreateAPIPayload(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 = {
        'field_ids': 'list[int]',
        'ignore_outliers': 'bool',
        'name': 'str',
        'show_legend': 'bool',
        'show_original': 'bool',
        'smoothing': 'float',
        'x_axis': 'str',
        'x_axis_max': 'float',
        'x_axis_min': 'float',
        'x_axis_name': 'str',
        'y_axis_max': 'float',
        'y_axis_min': 'float',
        'y_axis_name': 'str'
    }

    attribute_map = {
        'field_ids': 'field_ids',
        'ignore_outliers': 'ignore_outliers',
        'name': 'name',
        'show_legend': 'show_legend',
        'show_original': 'show_original',
        'smoothing': 'smoothing',
        'x_axis': 'x_axis',
        'x_axis_max': 'x_axis_max',
        'x_axis_min': 'x_axis_min',
        'x_axis_name': 'x_axis_name',
        'y_axis_max': 'y_axis_max',
        'y_axis_min': 'y_axis_min',
        'y_axis_name': 'y_axis_name'
    }

    def __init__(self, field_ids=None, ignore_outliers=None, name=None, show_legend=None, show_original=None, smoothing=None, x_axis=None, x_axis_max=None, x_axis_min=None, x_axis_name=None, y_axis_max=None, y_axis_min=None, y_axis_name=None, local_vars_configuration=None):  # noqa: E501
        """DashboardChartCreateAPIPayload - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration.get_default_copy()
        self.local_vars_configuration = local_vars_configuration

        self._field_ids = None
        self._ignore_outliers = None
        self._name = None
        self._show_legend = None
        self._show_original = None
        self._smoothing = None
        self._x_axis = None
        self._x_axis_max = None
        self._x_axis_min = None
        self._x_axis_name = None
        self._y_axis_max = None
        self._y_axis_min = None
        self._y_axis_name = None
        self.discriminator = None

        if field_ids is not None:
            self.field_ids = field_ids
        self.ignore_outliers = ignore_outliers
        self.name = name
        self.show_legend = show_legend
        self.show_original = show_original
        self.smoothing = smoothing
        self.x_axis = x_axis
        self.x_axis_max = x_axis_max
        self.x_axis_min = x_axis_min
        self.x_axis_name = x_axis_name
        self.y_axis_max = y_axis_max
        self.y_axis_min = y_axis_min
        self.y_axis_name = y_axis_name

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


        :return: The field_ids of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: list[int]
        """
        return self._field_ids

    @field_ids.setter
    def field_ids(self, field_ids):
        """Sets the field_ids of this DashboardChartCreateAPIPayload.


        :param field_ids: The field_ids of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type field_ids: list[int]
        """

        self._field_ids = field_ids

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


        :return: The ignore_outliers of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: bool
        """
        return self._ignore_outliers

    @ignore_outliers.setter
    def ignore_outliers(self, ignore_outliers):
        """Sets the ignore_outliers of this DashboardChartCreateAPIPayload.


        :param ignore_outliers: The ignore_outliers of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type ignore_outliers: bool
        """

        self._ignore_outliers = ignore_outliers

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


        :return: The name of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: str
        """
        return self._name

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


        :param name: The name of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type name: str
        """
        if self.local_vars_configuration.client_side_validation and name is None:  # noqa: E501
            raise ValueError("Invalid value for `name`, must not be `None`")  # noqa: E501

        self._name = name

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


        :return: The show_legend of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: bool
        """
        return self._show_legend

    @show_legend.setter
    def show_legend(self, show_legend):
        """Sets the show_legend of this DashboardChartCreateAPIPayload.


        :param show_legend: The show_legend of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type show_legend: bool
        """

        self._show_legend = show_legend

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


        :return: The show_original of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: bool
        """
        return self._show_original

    @show_original.setter
    def show_original(self, show_original):
        """Sets the show_original of this DashboardChartCreateAPIPayload.


        :param show_original: The show_original of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type show_original: bool
        """

        self._show_original = show_original

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


        :return: The smoothing of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: float
        """
        return self._smoothing

    @smoothing.setter
    def smoothing(self, smoothing):
        """Sets the smoothing of this DashboardChartCreateAPIPayload.


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

        self._smoothing = smoothing

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


        :return: The x_axis of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: str
        """
        return self._x_axis

    @x_axis.setter
    def x_axis(self, x_axis):
        """Sets the x_axis of this DashboardChartCreateAPIPayload.


        :param x_axis: The x_axis of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type x_axis: str
        """

        self._x_axis = x_axis

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


        :return: The x_axis_max of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: float
        """
        return self._x_axis_max

    @x_axis_max.setter
    def x_axis_max(self, x_axis_max):
        """Sets the x_axis_max of this DashboardChartCreateAPIPayload.


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

        self._x_axis_max = x_axis_max

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


        :return: The x_axis_min of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: float
        """
        return self._x_axis_min

    @x_axis_min.setter
    def x_axis_min(self, x_axis_min):
        """Sets the x_axis_min of this DashboardChartCreateAPIPayload.


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

        self._x_axis_min = x_axis_min

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


        :return: The x_axis_name of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: str
        """
        return self._x_axis_name

    @x_axis_name.setter
    def x_axis_name(self, x_axis_name):
        """Sets the x_axis_name of this DashboardChartCreateAPIPayload.


        :param x_axis_name: The x_axis_name of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type x_axis_name: str
        """

        self._x_axis_name = x_axis_name

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


        :return: The y_axis_max of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: float
        """
        return self._y_axis_max

    @y_axis_max.setter
    def y_axis_max(self, y_axis_max):
        """Sets the y_axis_max of this DashboardChartCreateAPIPayload.


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

        self._y_axis_max = y_axis_max

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


        :return: The y_axis_min of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: float
        """
        return self._y_axis_min

    @y_axis_min.setter
    def y_axis_min(self, y_axis_min):
        """Sets the y_axis_min of this DashboardChartCreateAPIPayload.


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

        self._y_axis_min = y_axis_min

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


        :return: The y_axis_name of this DashboardChartCreateAPIPayload.  # noqa: E501
        :rtype: str
        """
        return self._y_axis_name

    @y_axis_name.setter
    def y_axis_name(self, y_axis_name):
        """Sets the y_axis_name of this DashboardChartCreateAPIPayload.


        :param y_axis_name: The y_axis_name of this DashboardChartCreateAPIPayload.  # noqa: E501
        :type y_axis_name: str
        """

        self._y_axis_name = y_axis_name

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

        def convert(x):
            if hasattr(x, "to_dict"):
                args = getfullargspec(x.to_dict).args
                if len(args) == 1:
                    return x.to_dict()
                else:
                    return x.to_dict(serialize)
            else:
                return x

        for attr, _ in six.iteritems(self.openapi_types):
            value = getattr(self, attr)
            attr = self.attribute_map.get(attr, attr) if serialize else attr
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: convert(x),
                    value
                ))
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], convert(item[1])),
                    value.items()
                ))
            else:
                result[attr] = convert(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, DashboardChartCreateAPIPayload):
            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, DashboardChartCreateAPIPayload):
            return True

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