# coding: utf-8

"""
    Statuspage API

    # Code of Conduct Please don't abuse the API, and please report all feature requests and issues to https://support.atlassian.com/contact  # Rate Limiting Each API token is limited to 1 request / second as measured on a 60 second rolling window. To get this limit increased, please contact us at https://support.atlassian.com/contact  Error codes 420 or 429 indicate that you have exceeded the rate limit and the request has been rejected.  # Basics  ## HTTPS It's required  ## URL Prefix In order to maintain version integrity into the future, the API is versioned. All calls currently begin with the following prefix:    https://api.statuspage.io/v1/  ## RESTful Interface Wherever possible, the API seeks to implement repeatable patterns with logical, representative URLs and descriptive HTTP verbs. Below are some examples and conventions you will see throughout the documentation.  * Collections are buckets: https://api.statuspage.io/v1/pages/asdf123/incidents.json * Elements have unique IDs: https://api.statuspage.io/v1/pages/asdf123/incidents/jklm456.json * GET will retrieve information about a collection/element * POST will create an element in a collection * PATCH will update a single element * PUT will replace a single element in a collection (rarely used) * DELETE will destroy a single element  ## Sending Data Information can be sent in the body as form urlencoded or JSON, but make sure the Content-Type header matches the body structure or the server gremlins will be angry.  All examples are provided in JSON format, however they can easily be converted to form encoding if required.  Some examples of how to convert things are below:      // JSON     {       \"incident\": {         \"name\": \"test incident\",         \"components\": [\"8kbf7d35c070\", \"vtnh60py4yd7\"]       }     }      // Form Encoded (using curl as an example):     curl -X POST https://api.statuspage.io/v1/example \\       -d \"incident[name]=test incident\" \\       -d \"incident[components][]=8kbf7d35c070\" \\       -d \"incident[components][]=vtnh60py4yd7\"  # Authentication  <!-- ReDoc-Inject: <security-definitions> -->  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

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

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_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.
    """
    swagger_types = {
        'name': 'str',
        'metric_identifier': 'str',
        'transform': 'str',
        'suffix': 'str',
        'y_axis_min': 'int',
        'y_axis_max': 'int',
        'y_axis_hidden': 'bool',
        'display': 'bool',
        'decimal_places': 'int',
        'tooltip_description': 'str'
    }

    attribute_map = {
        'name': 'name',
        'metric_identifier': 'metric_identifier',
        'transform': 'transform',
        'suffix': 'suffix',
        'y_axis_min': 'y_axis_min',
        'y_axis_max': 'y_axis_max',
        'y_axis_hidden': 'y_axis_hidden',
        'display': 'display',
        'decimal_places': 'decimal_places',
        'tooltip_description': 'tooltip_description'
    }

    def __init__(self, name=None, metric_identifier=None, transform=None, suffix=None, y_axis_min=None, y_axis_max=None, y_axis_hidden=None, display=None, decimal_places=None, tooltip_description=None):  # noqa: E501
        """PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric - a model defined in Swagger"""  # noqa: E501
        self._name = None
        self._metric_identifier = None
        self._transform = None
        self._suffix = None
        self._y_axis_min = None
        self._y_axis_max = None
        self._y_axis_hidden = None
        self._display = None
        self._decimal_places = None
        self._tooltip_description = None
        self.discriminator = None
        if name is not None:
            self.name = name
        if metric_identifier is not None:
            self.metric_identifier = metric_identifier
        if transform is not None:
            self.transform = transform
        if suffix is not None:
            self.suffix = suffix
        if y_axis_min is not None:
            self.y_axis_min = y_axis_min
        if y_axis_max is not None:
            self.y_axis_max = y_axis_max
        if y_axis_hidden is not None:
            self.y_axis_hidden = y_axis_hidden
        if display is not None:
            self.display = display
        if decimal_places is not None:
            self.decimal_places = decimal_places
        if tooltip_description is not None:
            self.tooltip_description = tooltip_description

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

        Name of metric  # noqa: E501

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

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

        Name of metric  # noqa: E501

        :param name: The name of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: str
        """

        self._name = name

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

        The identifier used to look up the metric data from the provider  # noqa: E501

        :return: The metric_identifier of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: str
        """
        return self._metric_identifier

    @metric_identifier.setter
    def metric_identifier(self, metric_identifier):
        """Sets the metric_identifier of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.

        The identifier used to look up the metric data from the provider  # noqa: E501

        :param metric_identifier: The metric_identifier of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: str
        """

        self._metric_identifier = metric_identifier

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

        The transform to apply to metric before pulling into Statuspage. One of: \"average\", \"count\", \"max\", \"min\", or \"sum\"  # noqa: E501

        :return: The transform of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: str
        """
        return self._transform

    @transform.setter
    def transform(self, transform):
        """Sets the transform of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.

        The transform to apply to metric before pulling into Statuspage. One of: \"average\", \"count\", \"max\", \"min\", or \"sum\"  # noqa: E501

        :param transform: The transform of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: str
        """

        self._transform = transform

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

        Suffix to describe the units on the graph  # noqa: E501

        :return: The suffix of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: str
        """
        return self._suffix

    @suffix.setter
    def suffix(self, suffix):
        """Sets the suffix of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.

        Suffix to describe the units on the graph  # noqa: E501

        :param suffix: The suffix of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: str
        """

        self._suffix = suffix

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

        The lower bound of the y axis  # noqa: E501

        :return: The y_axis_min of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: int
        """
        return self._y_axis_min

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

        The lower bound of the y axis  # noqa: E501

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

        self._y_axis_min = y_axis_min

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

        The upper bound of the y axis  # noqa: E501

        :return: The y_axis_max of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: int
        """
        return self._y_axis_max

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

        The upper bound of the y axis  # noqa: E501

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

        self._y_axis_max = y_axis_max

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

        Should the values on the y axis be hidden on render  # noqa: E501

        :return: The y_axis_hidden of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: bool
        """
        return self._y_axis_hidden

    @y_axis_hidden.setter
    def y_axis_hidden(self, y_axis_hidden):
        """Sets the y_axis_hidden of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.

        Should the values on the y axis be hidden on render  # noqa: E501

        :param y_axis_hidden: The y_axis_hidden of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: bool
        """

        self._y_axis_hidden = y_axis_hidden

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

        Should the metric be displayed  # noqa: E501

        :return: The display of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: bool
        """
        return self._display

    @display.setter
    def display(self, display):
        """Sets the display of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.

        Should the metric be displayed  # noqa: E501

        :param display: The display of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: bool
        """

        self._display = display

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

        How many decimal places to render on the graph  # noqa: E501

        :return: The decimal_places of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: int
        """
        return self._decimal_places

    @decimal_places.setter
    def decimal_places(self, decimal_places):
        """Sets the decimal_places of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.

        How many decimal places to render on the graph  # noqa: E501

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

        self._decimal_places = decimal_places

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


        :return: The tooltip_description of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :rtype: str
        """
        return self._tooltip_description

    @tooltip_description.setter
    def tooltip_description(self, tooltip_description):
        """Sets the tooltip_description of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.


        :param tooltip_description: The tooltip_description of this PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric.  # noqa: E501
        :type: str
        """

        self._tooltip_description = tooltip_description

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

        for attr, _ in six.iteritems(self.swagger_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
        if issubclass(PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric, dict):
            for key, value in self.items():
                result[key] = 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, PostPagesPageIdMetricsProvidersMetricsProviderIdMetricsMetric):
            return False

        return self.__dict__ == other.__dict__

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