# coding: utf-8

"""
    rainbond cloud app market OpenAPI.

    the purpose of this application is to provide an application that is using plain go code to define an API  This should demonstrate all the possible comment annotations that are available to turn go code into a fully compliant swagger 2.0 spec  # noqa: E501

    OpenAPI spec version: 0.0.1
    Contact: 576501057@qq.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six


class StoreAppVersionTempleteAppProbe(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 = {
        'id': 'int',
        'cmd': 'str',
        'failure_threshold': 'int',
        'http_header': 'str',
        'initial_delay_second': 'int',
        'is_used': 'bool',
        'mode': 'str',
        'path': 'str',
        'period_second': 'int',
        'port': 'int',
        'probe_id': 'str',
        'scheme': 'str',
        'service_id': 'str',
        'success_threshold': 'int',
        'timeout_second': 'int'
    }

    attribute_map = {
        'id': 'ID',
        'cmd': 'cmd',
        'failure_threshold': 'failure_threshold',
        'http_header': 'http_header',
        'initial_delay_second': 'initial_delay_second',
        'is_used': 'is_used',
        'mode': 'mode',
        'path': 'path',
        'period_second': 'period_second',
        'port': 'port',
        'probe_id': 'probe_id',
        'scheme': 'scheme',
        'service_id': 'service_id',
        'success_threshold': 'success_threshold',
        'timeout_second': 'timeout_second'
    }

    def __init__(self, id=None, cmd=None, failure_threshold=None, http_header=None, initial_delay_second=None, is_used=None, mode=None, path=None, period_second=None, port=None, probe_id=None, scheme=None, service_id=None, success_threshold=None, timeout_second=None):  # noqa: E501
        """StoreAppVersionTempleteAppProbe - a model defined in Swagger"""  # noqa: E501

        self._id = None
        self._cmd = None
        self._failure_threshold = None
        self._http_header = None
        self._initial_delay_second = None
        self._is_used = None
        self._mode = None
        self._path = None
        self._period_second = None
        self._port = None
        self._probe_id = None
        self._scheme = None
        self._service_id = None
        self._success_threshold = None
        self._timeout_second = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if cmd is not None:
            self.cmd = cmd
        if failure_threshold is not None:
            self.failure_threshold = failure_threshold
        if http_header is not None:
            self.http_header = http_header
        if initial_delay_second is not None:
            self.initial_delay_second = initial_delay_second
        if is_used is not None:
            self.is_used = is_used
        if mode is not None:
            self.mode = mode
        if path is not None:
            self.path = path
        if period_second is not None:
            self.period_second = period_second
        if port is not None:
            self.port = port
        if probe_id is not None:
            self.probe_id = probe_id
        if scheme is not None:
            self.scheme = scheme
        if service_id is not None:
            self.service_id = service_id
        if success_threshold is not None:
            self.success_threshold = success_threshold
        if timeout_second is not None:
            self.timeout_second = timeout_second

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


        :return: The id of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._id

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


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

        self._id = id

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


        :return: The cmd of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._cmd

    @cmd.setter
    def cmd(self, cmd):
        """Sets the cmd of this StoreAppVersionTempleteAppProbe.


        :param cmd: The cmd of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._cmd = cmd

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


        :return: The failure_threshold of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._failure_threshold

    @failure_threshold.setter
    def failure_threshold(self, failure_threshold):
        """Sets the failure_threshold of this StoreAppVersionTempleteAppProbe.


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

        self._failure_threshold = failure_threshold

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


        :return: The http_header of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._http_header

    @http_header.setter
    def http_header(self, http_header):
        """Sets the http_header of this StoreAppVersionTempleteAppProbe.


        :param http_header: The http_header of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._http_header = http_header

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


        :return: The initial_delay_second of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._initial_delay_second

    @initial_delay_second.setter
    def initial_delay_second(self, initial_delay_second):
        """Sets the initial_delay_second of this StoreAppVersionTempleteAppProbe.


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

        self._initial_delay_second = initial_delay_second

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


        :return: The is_used of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: bool
        """
        return self._is_used

    @is_used.setter
    def is_used(self, is_used):
        """Sets the is_used of this StoreAppVersionTempleteAppProbe.


        :param is_used: The is_used of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: bool
        """

        self._is_used = is_used

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


        :return: The mode of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._mode

    @mode.setter
    def mode(self, mode):
        """Sets the mode of this StoreAppVersionTempleteAppProbe.


        :param mode: The mode of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._mode = mode

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


        :return: The path of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._path

    @path.setter
    def path(self, path):
        """Sets the path of this StoreAppVersionTempleteAppProbe.


        :param path: The path of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._path = path

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


        :return: The period_second of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._period_second

    @period_second.setter
    def period_second(self, period_second):
        """Sets the period_second of this StoreAppVersionTempleteAppProbe.


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

        self._period_second = period_second

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


        :return: The port of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._port

    @port.setter
    def port(self, port):
        """Sets the port of this StoreAppVersionTempleteAppProbe.


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

        self._port = port

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


        :return: The probe_id of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._probe_id

    @probe_id.setter
    def probe_id(self, probe_id):
        """Sets the probe_id of this StoreAppVersionTempleteAppProbe.


        :param probe_id: The probe_id of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._probe_id = probe_id

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


        :return: The scheme of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._scheme

    @scheme.setter
    def scheme(self, scheme):
        """Sets the scheme of this StoreAppVersionTempleteAppProbe.


        :param scheme: The scheme of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._scheme = scheme

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


        :return: The service_id of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: str
        """
        return self._service_id

    @service_id.setter
    def service_id(self, service_id):
        """Sets the service_id of this StoreAppVersionTempleteAppProbe.


        :param service_id: The service_id of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :type: str
        """

        self._service_id = service_id

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


        :return: The success_threshold of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._success_threshold

    @success_threshold.setter
    def success_threshold(self, success_threshold):
        """Sets the success_threshold of this StoreAppVersionTempleteAppProbe.


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

        self._success_threshold = success_threshold

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


        :return: The timeout_second of this StoreAppVersionTempleteAppProbe.  # noqa: E501
        :rtype: int
        """
        return self._timeout_second

    @timeout_second.setter
    def timeout_second(self, timeout_second):
        """Sets the timeout_second of this StoreAppVersionTempleteAppProbe.


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

        self._timeout_second = timeout_second

    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(StoreAppVersionTempleteAppProbe, 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, StoreAppVersionTempleteAppProbe):
            return False

        return self.__dict__ == other.__dict__

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