# coding: utf-8

"""
    EDIS public shipping API

    <div class=\"msgbox_important\"><p class=\"msgbox_importantInDiv\" data-mc-autonum=\"&lt;b&gt;&lt;span style=&quot;color: #dd1e31;&quot; class=&quot;mcFormatColor&quot;&gt;Important! &lt;/span&gt;&lt;/b&gt;\"><span class=\"autonumber\"><span><b><span style=\"color: #dd1e31;\" class=\"mcFormatColor\">Important!</span></b></span></span> This method is only available for Greater-China based sellers with an active eDIS account.</p></div><br>This API allows 3rd party developers in the Greater-China area to process package shipping details.  # 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 GetServiceListResponsesData(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 = {
        'href': 'str',
        'limit': 'int',
        'next': 'str',
        'offset': 'int',
        'prev': 'str',
        'services': 'list[ServiceInfoResponses]',
        'total': 'int'
    }

    attribute_map = {
        'href': 'href',
        'limit': 'limit',
        'next': 'next',
        'offset': 'offset',
        'prev': 'prev',
        'services': 'services',
        'total': 'total'
    }

    def __init__(self, href=None, limit=None, next=None, offset=None, prev=None, services=None, total=None):  # noqa: E501
        """GetServiceListResponsesData - a model defined in Swagger"""  # noqa: E501
        self._href = None
        self._limit = None
        self._next = None
        self._offset = None
        self._prev = None
        self._services = None
        self._total = None
        self.discriminator = None
        if href is not None:
            self.href = href
        if limit is not None:
            self.limit = limit
        if next is not None:
            self.next = next
        if offset is not None:
            self.offset = offset
        if prev is not None:
            self.prev = prev
        if services is not None:
            self.services = services
        if total is not None:
            self.total = total

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

        The URL to the current page of the result set.  # noqa: E501

        :return: The href of this GetServiceListResponsesData.  # noqa: E501
        :rtype: str
        """
        return self._href

    @href.setter
    def href(self, href):
        """Sets the href of this GetServiceListResponsesData.

        The URL to the current page of the result set.  # noqa: E501

        :param href: The href of this GetServiceListResponsesData.  # noqa: E501
        :type: str
        """

        self._href = href

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

        The value of the <b>limit</b> parameter submitted in the request.  # noqa: E501

        :return: The limit of this GetServiceListResponsesData.  # noqa: E501
        :rtype: int
        """
        return self._limit

    @limit.setter
    def limit(self, limit):
        """Sets the limit of this GetServiceListResponsesData.

        The value of the <b>limit</b> parameter submitted in the request.  # noqa: E501

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

        self._limit = limit

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

        The URI for the next page of results. This value is returned if there is an additional page of results to return from the result set.  # noqa: E501

        :return: The next of this GetServiceListResponsesData.  # noqa: E501
        :rtype: str
        """
        return self._next

    @next.setter
    def next(self, next):
        """Sets the next of this GetServiceListResponsesData.

        The URI for the next page of results. This value is returned if there is an additional page of results to return from the result set.  # noqa: E501

        :param next: The next of this GetServiceListResponsesData.  # noqa: E501
        :type: str
        """

        self._next = next

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

        The value of the <b>offset</b> parameter submitted in the request.  # noqa: E501

        :return: The offset of this GetServiceListResponsesData.  # noqa: E501
        :rtype: int
        """
        return self._offset

    @offset.setter
    def offset(self, offset):
        """Sets the offset of this GetServiceListResponsesData.

        The value of the <b>offset</b> parameter submitted in the request.  # noqa: E501

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

        self._offset = offset

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

        The URI for the previous page of results. This is returned if there is a previous page of results from the result set.  # noqa: E501

        :return: The prev of this GetServiceListResponsesData.  # noqa: E501
        :rtype: str
        """
        return self._prev

    @prev.setter
    def prev(self, prev):
        """Sets the prev of this GetServiceListResponsesData.

        The URI for the previous page of results. This is returned if there is a previous page of results from the result set.  # noqa: E501

        :param prev: The prev of this GetServiceListResponsesData.  # noqa: E501
        :type: str
        """

        self._prev = prev

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

        This array returns a list of available shipping services, as well as the descriptions, directions, and identifiers of each service.  # noqa: E501

        :return: The services of this GetServiceListResponsesData.  # noqa: E501
        :rtype: list[ServiceInfoResponses]
        """
        return self._services

    @services.setter
    def services(self, services):
        """Sets the services of this GetServiceListResponsesData.

        This array returns a list of available shipping services, as well as the descriptions, directions, and identifiers of each service.  # noqa: E501

        :param services: The services of this GetServiceListResponsesData.  # noqa: E501
        :type: list[ServiceInfoResponses]
        """

        self._services = services

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

        The total number of shipping services being displayed on the current results page.  # noqa: E501

        :return: The total of this GetServiceListResponsesData.  # noqa: E501
        :rtype: int
        """
        return self._total

    @total.setter
    def total(self, total):
        """Sets the total of this GetServiceListResponsesData.

        The total number of shipping services being displayed on the current results page.  # noqa: E501

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

        self._total = total

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

        return self.__dict__ == other.__dict__

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