# coding: utf-8

"""
    PeerTube

    # Introduction  The PeerTube API is built on HTTP(S). Our API is RESTful. It has predictable resource URLs. It returns HTTP response codes to indicate errors. It also accepts and returns JSON in the HTTP body. You can use your favorite HTTP/REST library for your programming language to use PeerTube. No official SDK is currently provided, but the spec API is fully compatible with [openapi-generator](https://github.com/OpenAPITools/openapi-generator/wiki/API-client-generator-HOWTO) which generates a client SDK in the language of your choice.  # Authentication  When you sign up for an account, you are given the possibility to generate sessions, and authenticate using this session token. One session token can currently be used at a time.  # Errors  The API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format.  ``` {   \"code\": \"unauthorized_request\", // example inner error code   \"error\": \"Token is invalid.\" // example exposed error message } ```   # noqa: E501

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


import pprint
import re  # noqa: F401

import six

from peertube.configuration import Configuration


class VideoPlaylistOwnerAccount(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 = {
        'id': 'float',
        'name': 'str',
        'display_name': 'str',
        'url': 'str',
        'host': 'str'
    }

    attribute_map = {
        'id': 'id',
        'name': 'name',
        'display_name': 'displayName',
        'url': 'url',
        'host': 'host'
    }

    def __init__(self, id=None, name=None, display_name=None, url=None, host=None, local_vars_configuration=None):  # noqa: E501
        """VideoPlaylistOwnerAccount - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._id = None
        self._name = None
        self._display_name = None
        self._url = None
        self._host = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if name is not None:
            self.name = name
        if display_name is not None:
            self.display_name = display_name
        if url is not None:
            self.url = url
        if host is not None:
            self.host = host

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


        :return: The id of this VideoPlaylistOwnerAccount.  # noqa: E501
        :rtype: float
        """
        return self._id

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


        :param id: The id of this VideoPlaylistOwnerAccount.  # noqa: E501
        :type: float
        """

        self._id = id

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


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

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


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

        self._name = name

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


        :return: The display_name of this VideoPlaylistOwnerAccount.  # noqa: E501
        :rtype: str
        """
        return self._display_name

    @display_name.setter
    def display_name(self, display_name):
        """Sets the display_name of this VideoPlaylistOwnerAccount.


        :param display_name: The display_name of this VideoPlaylistOwnerAccount.  # noqa: E501
        :type: str
        """

        self._display_name = display_name

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


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

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


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

        self._url = url

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


        :return: The host of this VideoPlaylistOwnerAccount.  # noqa: E501
        :rtype: str
        """
        return self._host

    @host.setter
    def host(self, host):
        """Sets the host of this VideoPlaylistOwnerAccount.


        :param host: The host of this VideoPlaylistOwnerAccount.  # noqa: E501
        :type: str
        """

        self._host = host

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

        for attr, _ in six.iteritems(self.openapi_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

        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, VideoPlaylistOwnerAccount):
            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, VideoPlaylistOwnerAccount):
            return True

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