# coding: utf-8

"""
    URL Expander API

    This API expands shortened URLs and retrieves details about redirections and the final destination URL.  # 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 InlineResponse200Data(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 = {
        'succeed': 'bool',
        'url': 'str',
        'time': 'int',
        'http_code': 'int',
        'redirect_url': 'OneOfinlineResponse200DataRedirectUrl',
        'content_type': 'str',
        'scheme': 'str',
        'primary_ip': 'str',
        'header': 'str',
        'header_size': 'int',
        'all_time': 'str',
        'dns_time': 'str',
        'error_no': 'int',
        'error_msg': 'OneOfinlineResponse200DataErrorMsg'
    }

    attribute_map = {
        'succeed': 'succeed',
        'url': 'url',
        'time': 'time',
        'http_code': 'httpCode',
        'redirect_url': 'redirectUrl',
        'content_type': 'contentType',
        'scheme': 'scheme',
        'primary_ip': 'primaryIp',
        'header': 'header',
        'header_size': 'headerSize',
        'all_time': 'allTime',
        'dns_time': 'dnsTime',
        'error_no': 'errorNo',
        'error_msg': 'errorMsg'
    }

    def __init__(self, succeed=None, url=None, time=None, http_code=None, redirect_url=None, content_type=None, scheme=None, primary_ip=None, header=None, header_size=None, all_time=None, dns_time=None, error_no=None, error_msg=None):  # noqa: E501
        """InlineResponse200Data - a model defined in Swagger"""  # noqa: E501
        self._succeed = None
        self._url = None
        self._time = None
        self._http_code = None
        self._redirect_url = None
        self._content_type = None
        self._scheme = None
        self._primary_ip = None
        self._header = None
        self._header_size = None
        self._all_time = None
        self._dns_time = None
        self._error_no = None
        self._error_msg = None
        self.discriminator = None
        if succeed is not None:
            self.succeed = succeed
        if url is not None:
            self.url = url
        if time is not None:
            self.time = time
        if http_code is not None:
            self.http_code = http_code
        if redirect_url is not None:
            self.redirect_url = redirect_url
        if content_type is not None:
            self.content_type = content_type
        if scheme is not None:
            self.scheme = scheme
        if primary_ip is not None:
            self.primary_ip = primary_ip
        if header is not None:
            self.header = header
        if header_size is not None:
            self.header_size = header_size
        if all_time is not None:
            self.all_time = all_time
        if dns_time is not None:
            self.dns_time = dns_time
        if error_no is not None:
            self.error_no = error_no
        if error_msg is not None:
            self.error_msg = error_msg

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

        Whether the URL expansion was successful  # noqa: E501

        :return: The succeed of this InlineResponse200Data.  # noqa: E501
        :rtype: bool
        """
        return self._succeed

    @succeed.setter
    def succeed(self, succeed):
        """Sets the succeed of this InlineResponse200Data.

        Whether the URL expansion was successful  # noqa: E501

        :param succeed: The succeed of this InlineResponse200Data.  # noqa: E501
        :type: bool
        """

        self._succeed = succeed

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

        The URL that was processed  # noqa: E501

        :return: The url of this InlineResponse200Data.  # noqa: E501
        :rtype: str
        """
        return self._url

    @url.setter
    def url(self, url):
        """Sets the url of this InlineResponse200Data.

        The URL that was processed  # noqa: E501

        :param url: The url of this InlineResponse200Data.  # noqa: E501
        :type: str
        """

        self._url = url

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

        The timestamp of the request  # noqa: E501

        :return: The time of this InlineResponse200Data.  # noqa: E501
        :rtype: int
        """
        return self._time

    @time.setter
    def time(self, time):
        """Sets the time of this InlineResponse200Data.

        The timestamp of the request  # noqa: E501

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

        self._time = time

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

        HTTP status code of the response  # noqa: E501

        :return: The http_code of this InlineResponse200Data.  # noqa: E501
        :rtype: int
        """
        return self._http_code

    @http_code.setter
    def http_code(self, http_code):
        """Sets the http_code of this InlineResponse200Data.

        HTTP status code of the response  # noqa: E501

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

        self._http_code = http_code

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


        :return: The redirect_url of this InlineResponse200Data.  # noqa: E501
        :rtype: OneOfinlineResponse200DataRedirectUrl
        """
        return self._redirect_url

    @redirect_url.setter
    def redirect_url(self, redirect_url):
        """Sets the redirect_url of this InlineResponse200Data.


        :param redirect_url: The redirect_url of this InlineResponse200Data.  # noqa: E501
        :type: OneOfinlineResponse200DataRedirectUrl
        """

        self._redirect_url = redirect_url

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

        Content-Type of the response  # noqa: E501

        :return: The content_type of this InlineResponse200Data.  # noqa: E501
        :rtype: str
        """
        return self._content_type

    @content_type.setter
    def content_type(self, content_type):
        """Sets the content_type of this InlineResponse200Data.

        Content-Type of the response  # noqa: E501

        :param content_type: The content_type of this InlineResponse200Data.  # noqa: E501
        :type: str
        """

        self._content_type = content_type

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

        URL scheme (e.g., HTTP, HTTPS)  # noqa: E501

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

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

        URL scheme (e.g., HTTP, HTTPS)  # noqa: E501

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

        self._scheme = scheme

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

        The primary IP address of the server responding to the request  # noqa: E501

        :return: The primary_ip of this InlineResponse200Data.  # noqa: E501
        :rtype: str
        """
        return self._primary_ip

    @primary_ip.setter
    def primary_ip(self, primary_ip):
        """Sets the primary_ip of this InlineResponse200Data.

        The primary IP address of the server responding to the request  # noqa: E501

        :param primary_ip: The primary_ip of this InlineResponse200Data.  # noqa: E501
        :type: str
        """

        self._primary_ip = primary_ip

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

        The raw response headers  # noqa: E501

        :return: The header of this InlineResponse200Data.  # noqa: E501
        :rtype: str
        """
        return self._header

    @header.setter
    def header(self, header):
        """Sets the header of this InlineResponse200Data.

        The raw response headers  # noqa: E501

        :param header: The header of this InlineResponse200Data.  # noqa: E501
        :type: str
        """

        self._header = header

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

        Size of the response headers in bytes  # noqa: E501

        :return: The header_size of this InlineResponse200Data.  # noqa: E501
        :rtype: int
        """
        return self._header_size

    @header_size.setter
    def header_size(self, header_size):
        """Sets the header_size of this InlineResponse200Data.

        Size of the response headers in bytes  # noqa: E501

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

        self._header_size = header_size

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

        Total time taken for the request in seconds  # noqa: E501

        :return: The all_time of this InlineResponse200Data.  # noqa: E501
        :rtype: str
        """
        return self._all_time

    @all_time.setter
    def all_time(self, all_time):
        """Sets the all_time of this InlineResponse200Data.

        Total time taken for the request in seconds  # noqa: E501

        :param all_time: The all_time of this InlineResponse200Data.  # noqa: E501
        :type: str
        """

        self._all_time = all_time

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

        Time taken for DNS resolution in seconds  # noqa: E501

        :return: The dns_time of this InlineResponse200Data.  # noqa: E501
        :rtype: str
        """
        return self._dns_time

    @dns_time.setter
    def dns_time(self, dns_time):
        """Sets the dns_time of this InlineResponse200Data.

        Time taken for DNS resolution in seconds  # noqa: E501

        :param dns_time: The dns_time of this InlineResponse200Data.  # noqa: E501
        :type: str
        """

        self._dns_time = dns_time

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

        Error number, if any  # noqa: E501

        :return: The error_no of this InlineResponse200Data.  # noqa: E501
        :rtype: int
        """
        return self._error_no

    @error_no.setter
    def error_no(self, error_no):
        """Sets the error_no of this InlineResponse200Data.

        Error number, if any  # noqa: E501

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

        self._error_no = error_no

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


        :return: The error_msg of this InlineResponse200Data.  # noqa: E501
        :rtype: OneOfinlineResponse200DataErrorMsg
        """
        return self._error_msg

    @error_msg.setter
    def error_msg(self, error_msg):
        """Sets the error_msg of this InlineResponse200Data.


        :param error_msg: The error_msg of this InlineResponse200Data.  # noqa: E501
        :type: OneOfinlineResponse200DataErrorMsg
        """

        self._error_msg = error_msg

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

        return self.__dict__ == other.__dict__

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