# coding: utf-8

"""
    \"Data Governance Center: REST API v2\"

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

    OpenAPI spec version: 2.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.models.xml_ns0_match_mode import XmlNs0MatchMode  # noqa: F401,E501
from swagger_client.models.xml_ns0_paged_request import XmlNs0PagedRequest  # noqa: F401,E501


class XmlNs0FindAssetsRequest(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 = {
        'limit': 'float',
        'offset': 'float',
        'community_id': 'str',
        'domain_id': 'str',
        'exclude_meta': 'bool',
        'name': 'str',
        'name_match_mode': 'XmlNs0MatchMode',
        'status_ids': 'str',
        'tag_names': 'str',
        'type_ids': 'str',
        'type_inheritance': 'bool'
    }

    attribute_map = {
        'limit': 'limit',
        'offset': 'offset',
        'community_id': 'communityId',
        'domain_id': 'domainId',
        'exclude_meta': 'excludeMeta',
        'name': 'name',
        'name_match_mode': 'nameMatchMode',
        'status_ids': 'statusIds',
        'tag_names': 'tagNames',
        'type_ids': 'typeIds',
        'type_inheritance': 'typeInheritance'
    }

    def __init__(self, limit=None, offset=None, community_id=None, domain_id=None, exclude_meta=None, name=None, name_match_mode=None, status_ids=None, tag_names=None, type_ids=None, type_inheritance=None):  # noqa: E501
        """XmlNs0FindAssetsRequest - a model defined in Swagger"""  # noqa: E501

        self._limit = None
        self._offset = None
        self._community_id = None
        self._domain_id = None
        self._exclude_meta = None
        self._name = None
        self._name_match_mode = None
        self._status_ids = None
        self._tag_names = None
        self._type_ids = None
        self._type_inheritance = None
        self.discriminator = None

        if limit is not None:
            self.limit = limit
        if offset is not None:
            self.offset = offset
        if community_id is not None:
            self.community_id = community_id
        if domain_id is not None:
            self.domain_id = domain_id
        if exclude_meta is not None:
            self.exclude_meta = exclude_meta
        if name is not None:
            self.name = name
        if name_match_mode is not None:
            self.name_match_mode = name_match_mode
        if status_ids is not None:
            self.status_ids = status_ids
        if tag_names is not None:
            self.tag_names = tag_names
        if type_ids is not None:
            self.type_ids = type_ids
        if type_inheritance is not None:
            self.type_inheritance = type_inheritance

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

        The maximum number of results to retrieve. If not set (value = <tt>0</tt>), the default limit will be used  # noqa: E501

        :return: The limit of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: float
        """
        return self._limit

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

        The maximum number of results to retrieve. If not set (value = <tt>0</tt>), the default limit will be used  # noqa: E501

        :param limit: The limit of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: float
        """

        self._limit = limit

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

        The first result to retrieve. If not set (value = <tt>0</tt>), results will be retrieved starting from row <tt>0</tt>  # noqa: E501

        :return: The offset of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: float
        """
        return self._offset

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

        The first result to retrieve. If not set (value = <tt>0</tt>), results will be retrieved starting from row <tt>0</tt>  # noqa: E501

        :param offset: The offset of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: float
        """

        self._offset = offset

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

        The <code>id</code> of the community to find the assets in  # noqa: E501

        :return: The community_id of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: str
        """
        return self._community_id

    @community_id.setter
    def community_id(self, community_id):
        """Sets the community_id of this XmlNs0FindAssetsRequest.

        The <code>id</code> of the community to find the assets in  # noqa: E501

        :param community_id: The community_id of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: str
        """

        self._community_id = community_id

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

        The <code>id</code> of the domain to find the assets in  # noqa: E501

        :return: The domain_id of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: str
        """
        return self._domain_id

    @domain_id.setter
    def domain_id(self, domain_id):
        """Sets the domain_id of this XmlNs0FindAssetsRequest.

        The <code>id</code> of the domain to find the assets in  # noqa: E501

        :param domain_id: The domain_id of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: str
        """

        self._domain_id = domain_id

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

        The exclude meta flag. If this is set to true then the assets from meta domains will not be returned (meta domains are the domains which were not created by the user manually)  # noqa: E501

        :return: The exclude_meta of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: bool
        """
        return self._exclude_meta

    @exclude_meta.setter
    def exclude_meta(self, exclude_meta):
        """Sets the exclude_meta of this XmlNs0FindAssetsRequest.

        The exclude meta flag. If this is set to true then the assets from meta domains will not be returned (meta domains are the domains which were not created by the user manually)  # noqa: E501

        :param exclude_meta: The exclude_meta of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: bool
        """

        self._exclude_meta = exclude_meta

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

        The name of the asset to search for  # noqa: E501

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

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

        The name of the asset to search for  # noqa: E501

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

        self._name = name

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

        The match mode used to compare <code>name</code>  # noqa: E501

        :return: The name_match_mode of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: XmlNs0MatchMode
        """
        return self._name_match_mode

    @name_match_mode.setter
    def name_match_mode(self, name_match_mode):
        """Sets the name_match_mode of this XmlNs0FindAssetsRequest.

        The match mode used to compare <code>name</code>  # noqa: E501

        :param name_match_mode: The name_match_mode of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: XmlNs0MatchMode
        """

        self._name_match_mode = name_match_mode

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

        The list of <code>ids</code> of the statuses. The returned assets have one of statuses specified by this parameter  # noqa: E501

        :return: The status_ids of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: str
        """
        return self._status_ids

    @status_ids.setter
    def status_ids(self, status_ids):
        """Sets the status_ids of this XmlNs0FindAssetsRequest.

        The list of <code>ids</code> of the statuses. The returned assets have one of statuses specified by this parameter  # noqa: E501

        :param status_ids: The status_ids of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: str
        """

        self._status_ids = status_ids

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

        The list of names of tags. The returned assets have one of tags with names specified by this parameter  # noqa: E501

        :return: The tag_names of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: str
        """
        return self._tag_names

    @tag_names.setter
    def tag_names(self, tag_names):
        """Sets the tag_names of this XmlNs0FindAssetsRequest.

        The list of names of tags. The returned assets have one of tags with names specified by this parameter  # noqa: E501

        :param tag_names: The tag_names of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: str
        """

        self._tag_names = tag_names

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

        The list of <code>ids</code> of the asset types. The returned assets are of one of types specified by this parameter  # noqa: E501

        :return: The type_ids of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: str
        """
        return self._type_ids

    @type_ids.setter
    def type_ids(self, type_ids):
        """Sets the type_ids of this XmlNs0FindAssetsRequest.

        The list of <code>ids</code> of the asset types. The returned assets are of one of types specified by this parameter  # noqa: E501

        :param type_ids: The type_ids of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: str
        """

        self._type_ids = type_ids

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

        Whether the type inheritance for the asset type filtering should be applied or not  # noqa: E501

        :return: The type_inheritance of this XmlNs0FindAssetsRequest.  # noqa: E501
        :rtype: bool
        """
        return self._type_inheritance

    @type_inheritance.setter
    def type_inheritance(self, type_inheritance):
        """Sets the type_inheritance of this XmlNs0FindAssetsRequest.

        Whether the type inheritance for the asset type filtering should be applied or not  # noqa: E501

        :param type_inheritance: The type_inheritance of this XmlNs0FindAssetsRequest.  # noqa: E501
        :type: bool
        """

        self._type_inheritance = type_inheritance

    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

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

        return self.__dict__ == other.__dict__

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