# coding: utf-8

"""
    FAIR Evaluator API

    The FAIR Evaluator - automated testing of Web resources for their compliance with the FAIR Metrics  # noqa: E501

    OpenAPI spec version: 0.3.0
    Contact: mark.wilkinson@upm.es
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six
from fairevaluator.models.metrics_list import MetricsList  # noqa: F401,E501


class CollectionsResult(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': 'str',
        'context': 'str',
        'type': 'list[str]',
        'httppurl_orgdcelements1_1authored_by': 'str',
        'httppurl_orgdcelements1_1creator': 'str',
        'httppurl_orgdcelements1_1license': 'str',
        'httppurl_orgdcelements1_1title': 'str',
        'httppurl_orgpavversion': 'str',
        'httprdfs_orgnsvoiddescription': 'str',
        'httpwww_w3_orgnsdcatcontact_point': 'str',
        'httpwww_w3_orgnsdcatentities': 'str',
        'httpwww_w3_orgnsdcatidentifier': 'str',
        'httpwww_w3_orgnsdcatpublisher': 'str',
        'httpwww_w3_orgnsldpcontains': 'MetricsList'
    }

    attribute_map = {
        'id': '@id',
        'context': '@context',
        'type': '@type',
        'httppurl_orgdcelements1_1authored_by': 'http://purl.org/dc/elements/1.1/authoredBy',
        'httppurl_orgdcelements1_1creator': 'http://purl.org/dc/elements/1.1/creator',
        'httppurl_orgdcelements1_1license': 'http://purl.org/dc/elements/1.1/license',
        'httppurl_orgdcelements1_1title': 'http://purl.org/dc/elements/1.1/title',
        'httppurl_orgpavversion': 'http://purl.org/pav/version',
        'httprdfs_orgnsvoiddescription': 'http://rdfs.org/ns/void#description',
        'httpwww_w3_orgnsdcatcontact_point': 'http://www.w3.org/ns/dcat#contactPoint',
        'httpwww_w3_orgnsdcatentities': 'http://www.w3.org/ns/dcat#entities',
        'httpwww_w3_orgnsdcatidentifier': 'http://www.w3.org/ns/dcat#identifier',
        'httpwww_w3_orgnsdcatpublisher': 'http://www.w3.org/ns/dcat#publisher',
        'httpwww_w3_orgnsldpcontains': 'http://www.w3.org/ns/ldp#contains'
    }

    def __init__(self, id=None, context=None, type=None, httppurl_orgdcelements1_1authored_by=None, httppurl_orgdcelements1_1creator=None, httppurl_orgdcelements1_1license=None, httppurl_orgdcelements1_1title=None, httppurl_orgpavversion=None, httprdfs_orgnsvoiddescription=None, httpwww_w3_orgnsdcatcontact_point=None, httpwww_w3_orgnsdcatentities=None, httpwww_w3_orgnsdcatidentifier=None, httpwww_w3_orgnsdcatpublisher=None, httpwww_w3_orgnsldpcontains=None):  # noqa: E501
        """CollectionsResult - a model defined in Swagger"""  # noqa: E501
        self._id = None
        self._context = None
        self._type = None
        self._httppurl_orgdcelements1_1authored_by = None
        self._httppurl_orgdcelements1_1creator = None
        self._httppurl_orgdcelements1_1license = None
        self._httppurl_orgdcelements1_1title = None
        self._httppurl_orgpavversion = None
        self._httprdfs_orgnsvoiddescription = None
        self._httpwww_w3_orgnsdcatcontact_point = None
        self._httpwww_w3_orgnsdcatentities = None
        self._httpwww_w3_orgnsdcatidentifier = None
        self._httpwww_w3_orgnsdcatpublisher = None
        self._httpwww_w3_orgnsldpcontains = None
        self.discriminator = None
        if id is not None:
            self.id = id
        if context is not None:
            self.context = context
        if type is not None:
            self.type = type
        if httppurl_orgdcelements1_1authored_by is not None:
            self.httppurl_orgdcelements1_1authored_by = httppurl_orgdcelements1_1authored_by
        if httppurl_orgdcelements1_1creator is not None:
            self.httppurl_orgdcelements1_1creator = httppurl_orgdcelements1_1creator
        if httppurl_orgdcelements1_1license is not None:
            self.httppurl_orgdcelements1_1license = httppurl_orgdcelements1_1license
        if httppurl_orgdcelements1_1title is not None:
            self.httppurl_orgdcelements1_1title = httppurl_orgdcelements1_1title
        if httppurl_orgpavversion is not None:
            self.httppurl_orgpavversion = httppurl_orgpavversion
        if httprdfs_orgnsvoiddescription is not None:
            self.httprdfs_orgnsvoiddescription = httprdfs_orgnsvoiddescription
        if httpwww_w3_orgnsdcatcontact_point is not None:
            self.httpwww_w3_orgnsdcatcontact_point = httpwww_w3_orgnsdcatcontact_point
        if httpwww_w3_orgnsdcatentities is not None:
            self.httpwww_w3_orgnsdcatentities = httpwww_w3_orgnsdcatentities
        if httpwww_w3_orgnsdcatidentifier is not None:
            self.httpwww_w3_orgnsdcatidentifier = httpwww_w3_orgnsdcatidentifier
        if httpwww_w3_orgnsdcatpublisher is not None:
            self.httpwww_w3_orgnsdcatpublisher = httpwww_w3_orgnsdcatpublisher
        if httpwww_w3_orgnsldpcontains is not None:
            self.httpwww_w3_orgnsldpcontains = httpwww_w3_orgnsldpcontains

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


        :return: The id of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._id

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


        :param id: The id of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._id = id

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


        :return: The context of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._context

    @context.setter
    def context(self, context):
        """Sets the context of this CollectionsResult.


        :param context: The context of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._context = context

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


        :return: The type of this CollectionsResult.  # noqa: E501
        :rtype: list[str]
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this CollectionsResult.


        :param type: The type of this CollectionsResult.  # noqa: E501
        :type: list[str]
        """

        self._type = type

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


        :return: The httppurl_orgdcelements1_1authored_by of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httppurl_orgdcelements1_1authored_by

    @httppurl_orgdcelements1_1authored_by.setter
    def httppurl_orgdcelements1_1authored_by(self, httppurl_orgdcelements1_1authored_by):
        """Sets the httppurl_orgdcelements1_1authored_by of this CollectionsResult.


        :param httppurl_orgdcelements1_1authored_by: The httppurl_orgdcelements1_1authored_by of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httppurl_orgdcelements1_1authored_by = httppurl_orgdcelements1_1authored_by

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


        :return: The httppurl_orgdcelements1_1creator of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httppurl_orgdcelements1_1creator

    @httppurl_orgdcelements1_1creator.setter
    def httppurl_orgdcelements1_1creator(self, httppurl_orgdcelements1_1creator):
        """Sets the httppurl_orgdcelements1_1creator of this CollectionsResult.


        :param httppurl_orgdcelements1_1creator: The httppurl_orgdcelements1_1creator of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httppurl_orgdcelements1_1creator = httppurl_orgdcelements1_1creator

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


        :return: The httppurl_orgdcelements1_1license of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httppurl_orgdcelements1_1license

    @httppurl_orgdcelements1_1license.setter
    def httppurl_orgdcelements1_1license(self, httppurl_orgdcelements1_1license):
        """Sets the httppurl_orgdcelements1_1license of this CollectionsResult.


        :param httppurl_orgdcelements1_1license: The httppurl_orgdcelements1_1license of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httppurl_orgdcelements1_1license = httppurl_orgdcelements1_1license

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


        :return: The httppurl_orgdcelements1_1title of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httppurl_orgdcelements1_1title

    @httppurl_orgdcelements1_1title.setter
    def httppurl_orgdcelements1_1title(self, httppurl_orgdcelements1_1title):
        """Sets the httppurl_orgdcelements1_1title of this CollectionsResult.


        :param httppurl_orgdcelements1_1title: The httppurl_orgdcelements1_1title of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httppurl_orgdcelements1_1title = httppurl_orgdcelements1_1title

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


        :return: The httppurl_orgpavversion of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httppurl_orgpavversion

    @httppurl_orgpavversion.setter
    def httppurl_orgpavversion(self, httppurl_orgpavversion):
        """Sets the httppurl_orgpavversion of this CollectionsResult.


        :param httppurl_orgpavversion: The httppurl_orgpavversion of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httppurl_orgpavversion = httppurl_orgpavversion

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


        :return: The httprdfs_orgnsvoiddescription of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httprdfs_orgnsvoiddescription

    @httprdfs_orgnsvoiddescription.setter
    def httprdfs_orgnsvoiddescription(self, httprdfs_orgnsvoiddescription):
        """Sets the httprdfs_orgnsvoiddescription of this CollectionsResult.


        :param httprdfs_orgnsvoiddescription: The httprdfs_orgnsvoiddescription of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httprdfs_orgnsvoiddescription = httprdfs_orgnsvoiddescription

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


        :return: The httpwww_w3_orgnsdcatcontact_point of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httpwww_w3_orgnsdcatcontact_point

    @httpwww_w3_orgnsdcatcontact_point.setter
    def httpwww_w3_orgnsdcatcontact_point(self, httpwww_w3_orgnsdcatcontact_point):
        """Sets the httpwww_w3_orgnsdcatcontact_point of this CollectionsResult.


        :param httpwww_w3_orgnsdcatcontact_point: The httpwww_w3_orgnsdcatcontact_point of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httpwww_w3_orgnsdcatcontact_point = httpwww_w3_orgnsdcatcontact_point

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


        :return: The httpwww_w3_orgnsdcatentities of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httpwww_w3_orgnsdcatentities

    @httpwww_w3_orgnsdcatentities.setter
    def httpwww_w3_orgnsdcatentities(self, httpwww_w3_orgnsdcatentities):
        """Sets the httpwww_w3_orgnsdcatentities of this CollectionsResult.


        :param httpwww_w3_orgnsdcatentities: The httpwww_w3_orgnsdcatentities of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httpwww_w3_orgnsdcatentities = httpwww_w3_orgnsdcatentities

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


        :return: The httpwww_w3_orgnsdcatidentifier of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httpwww_w3_orgnsdcatidentifier

    @httpwww_w3_orgnsdcatidentifier.setter
    def httpwww_w3_orgnsdcatidentifier(self, httpwww_w3_orgnsdcatidentifier):
        """Sets the httpwww_w3_orgnsdcatidentifier of this CollectionsResult.


        :param httpwww_w3_orgnsdcatidentifier: The httpwww_w3_orgnsdcatidentifier of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httpwww_w3_orgnsdcatidentifier = httpwww_w3_orgnsdcatidentifier

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


        :return: The httpwww_w3_orgnsdcatpublisher of this CollectionsResult.  # noqa: E501
        :rtype: str
        """
        return self._httpwww_w3_orgnsdcatpublisher

    @httpwww_w3_orgnsdcatpublisher.setter
    def httpwww_w3_orgnsdcatpublisher(self, httpwww_w3_orgnsdcatpublisher):
        """Sets the httpwww_w3_orgnsdcatpublisher of this CollectionsResult.


        :param httpwww_w3_orgnsdcatpublisher: The httpwww_w3_orgnsdcatpublisher of this CollectionsResult.  # noqa: E501
        :type: str
        """

        self._httpwww_w3_orgnsdcatpublisher = httpwww_w3_orgnsdcatpublisher

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


        :return: The httpwww_w3_orgnsldpcontains of this CollectionsResult.  # noqa: E501
        :rtype: MetricsList
        """
        return self._httpwww_w3_orgnsldpcontains

    @httpwww_w3_orgnsldpcontains.setter
    def httpwww_w3_orgnsldpcontains(self, httpwww_w3_orgnsldpcontains):
        """Sets the httpwww_w3_orgnsldpcontains of this CollectionsResult.


        :param httpwww_w3_orgnsldpcontains: The httpwww_w3_orgnsldpcontains of this CollectionsResult.  # noqa: E501
        :type: MetricsList
        """

        self._httpwww_w3_orgnsldpcontains = httpwww_w3_orgnsldpcontains

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

        return self.__dict__ == other.__dict__

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