# coding: utf-8

"""
    Onshape REST API

    The Onshape REST API consumed by all clients.  # noqa: E501

    The version of the OpenAPI document: 1.104
    Contact: api-support@onshape.zendesk.com
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six


class BTDocumentSummarySearchInfo(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 = {
        'description': 'str',
        'tree_href': 'str',
        'is_mutable': 'bool',
        'resource_type': 'str',
        'project_id': 'str',
        'can_move': 'bool',
        'is_container': 'bool',
        'created_at': 'datetime',
        'is_enterprise_owned': 'bool',
        'modified_at': 'datetime',
        'created_by': 'BTUserBasicSummaryInfo',
        'modified_by': 'BTUserBasicSummaryInfo',
        'owner': 'BTOwnerInfo',
        'has_pending_owner': 'bool',
        'id': 'str',
        'href': 'str',
        'view_ref': 'str',
        'name': 'str',
        'json_type': 'str',
        'parent_id': 'str',
        'permission_set': 'object',
        'trash': 'bool',
        'total_workspaces_updating': 'int',
        'total_workspaces_scheduled_for_update': 'int',
        'can_unshare': 'bool',
        'thumbnail': 'BTThumbnailInfo',
        'support_team_user_and_shared': 'bool',
        'liked_by_current_user': 'bool',
        'document_labels': 'list[BTDocumentLabelInfo]',
        'number_of_times_referenced': 'int',
        'number_of_times_copied': 'int',
        'likes': 'int',
        'recent_version': 'BTBaseInfo',
        'has_relevant_insertables': 'bool',
        'created_with_education_plan': 'bool',
        'not_revision_managed': 'bool',
        'anonymous_access_allowed': 'bool',
        'anonymous_allows_export': 'bool',
        'default_element_id': 'str',
        'default_workspace': 'BTBaseInfo',
        'trashed_at': 'datetime',
        'public': 'bool',
        'is_orphaned': 'bool',
        'tags': 'list[str]',
        'has_release_revisionable_objects': 'bool',
        'user_account_limits_breached': 'bool',
        'is_using_managed_workflow': 'bool',
        'permission': 'str',
        'search_hits': 'list[BTDocumentSearchHitInfo]'
    }

    attribute_map = {
        'description': 'description',
        'tree_href': 'treeHref',
        'is_mutable': 'isMutable',
        'resource_type': 'resourceType',
        'project_id': 'projectId',
        'can_move': 'canMove',
        'is_container': 'isContainer',
        'created_at': 'createdAt',
        'is_enterprise_owned': 'isEnterpriseOwned',
        'modified_at': 'modifiedAt',
        'created_by': 'createdBy',
        'modified_by': 'modifiedBy',
        'owner': 'owner',
        'has_pending_owner': 'hasPendingOwner',
        'id': 'id',
        'href': 'href',
        'view_ref': 'viewRef',
        'name': 'name',
        'json_type': 'jsonType',
        'parent_id': 'parentId',
        'permission_set': 'permissionSet',
        'trash': 'trash',
        'total_workspaces_updating': 'totalWorkspacesUpdating',
        'total_workspaces_scheduled_for_update': 'totalWorkspacesScheduledForUpdate',
        'can_unshare': 'canUnshare',
        'thumbnail': 'thumbnail',
        'support_team_user_and_shared': 'supportTeamUserAndShared',
        'liked_by_current_user': 'likedByCurrentUser',
        'document_labels': 'documentLabels',
        'number_of_times_referenced': 'numberOfTimesReferenced',
        'number_of_times_copied': 'numberOfTimesCopied',
        'likes': 'likes',
        'recent_version': 'recentVersion',
        'has_relevant_insertables': 'hasRelevantInsertables',
        'created_with_education_plan': 'createdWithEducationPlan',
        'not_revision_managed': 'notRevisionManaged',
        'anonymous_access_allowed': 'anonymousAccessAllowed',
        'anonymous_allows_export': 'anonymousAllowsExport',
        'default_element_id': 'defaultElementId',
        'default_workspace': 'defaultWorkspace',
        'trashed_at': 'trashedAt',
        'public': 'public',
        'is_orphaned': 'isOrphaned',
        'tags': 'tags',
        'has_release_revisionable_objects': 'hasReleaseRevisionableObjects',
        'user_account_limits_breached': 'userAccountLimitsBreached',
        'is_using_managed_workflow': 'isUsingManagedWorkflow',
        'permission': 'permission',
        'search_hits': 'searchHits'
    }

    def __init__(self, description=None, tree_href=None, is_mutable=None, resource_type=None, project_id=None, can_move=None, is_container=None, created_at=None, is_enterprise_owned=None, modified_at=None, created_by=None, modified_by=None, owner=None, has_pending_owner=None, id=None, href=None, view_ref=None, name=None, json_type=None, parent_id=None, permission_set=None, trash=None, total_workspaces_updating=None, total_workspaces_scheduled_for_update=None, can_unshare=None, thumbnail=None, support_team_user_and_shared=None, liked_by_current_user=None, document_labels=None, number_of_times_referenced=None, number_of_times_copied=None, likes=None, recent_version=None, has_relevant_insertables=None, created_with_education_plan=None, not_revision_managed=None, anonymous_access_allowed=None, anonymous_allows_export=None, default_element_id=None, default_workspace=None, trashed_at=None, public=None, is_orphaned=None, tags=None, has_release_revisionable_objects=None, user_account_limits_breached=None, is_using_managed_workflow=None, permission=None, search_hits=None):  # noqa: E501
        """BTDocumentSummarySearchInfo - a model defined in OpenAPI"""  # noqa: E501

        self._description = None
        self._tree_href = None
        self._is_mutable = None
        self._resource_type = None
        self._project_id = None
        self._can_move = None
        self._is_container = None
        self._created_at = None
        self._is_enterprise_owned = None
        self._modified_at = None
        self._created_by = None
        self._modified_by = None
        self._owner = None
        self._has_pending_owner = None
        self._id = None
        self._href = None
        self._view_ref = None
        self._name = None
        self._json_type = None
        self._parent_id = None
        self._permission_set = None
        self._trash = None
        self._total_workspaces_updating = None
        self._total_workspaces_scheduled_for_update = None
        self._can_unshare = None
        self._thumbnail = None
        self._support_team_user_and_shared = None
        self._liked_by_current_user = None
        self._document_labels = None
        self._number_of_times_referenced = None
        self._number_of_times_copied = None
        self._likes = None
        self._recent_version = None
        self._has_relevant_insertables = None
        self._created_with_education_plan = None
        self._not_revision_managed = None
        self._anonymous_access_allowed = None
        self._anonymous_allows_export = None
        self._default_element_id = None
        self._default_workspace = None
        self._trashed_at = None
        self._public = None
        self._is_orphaned = None
        self._tags = None
        self._has_release_revisionable_objects = None
        self._user_account_limits_breached = None
        self._is_using_managed_workflow = None
        self._permission = None
        self._search_hits = None
        self.discriminator = None

        if description is not None:
            self.description = description
        if tree_href is not None:
            self.tree_href = tree_href
        if is_mutable is not None:
            self.is_mutable = is_mutable
        if resource_type is not None:
            self.resource_type = resource_type
        if project_id is not None:
            self.project_id = project_id
        if can_move is not None:
            self.can_move = can_move
        if is_container is not None:
            self.is_container = is_container
        if created_at is not None:
            self.created_at = created_at
        if is_enterprise_owned is not None:
            self.is_enterprise_owned = is_enterprise_owned
        if modified_at is not None:
            self.modified_at = modified_at
        if created_by is not None:
            self.created_by = created_by
        if modified_by is not None:
            self.modified_by = modified_by
        if owner is not None:
            self.owner = owner
        if has_pending_owner is not None:
            self.has_pending_owner = has_pending_owner
        if id is not None:
            self.id = id
        if href is not None:
            self.href = href
        if view_ref is not None:
            self.view_ref = view_ref
        if name is not None:
            self.name = name
        self.json_type = json_type
        if parent_id is not None:
            self.parent_id = parent_id
        if permission_set is not None:
            self.permission_set = permission_set
        if trash is not None:
            self.trash = trash
        if total_workspaces_updating is not None:
            self.total_workspaces_updating = total_workspaces_updating
        if total_workspaces_scheduled_for_update is not None:
            self.total_workspaces_scheduled_for_update = total_workspaces_scheduled_for_update
        if can_unshare is not None:
            self.can_unshare = can_unshare
        if thumbnail is not None:
            self.thumbnail = thumbnail
        if support_team_user_and_shared is not None:
            self.support_team_user_and_shared = support_team_user_and_shared
        if liked_by_current_user is not None:
            self.liked_by_current_user = liked_by_current_user
        if document_labels is not None:
            self.document_labels = document_labels
        if number_of_times_referenced is not None:
            self.number_of_times_referenced = number_of_times_referenced
        if number_of_times_copied is not None:
            self.number_of_times_copied = number_of_times_copied
        if likes is not None:
            self.likes = likes
        if recent_version is not None:
            self.recent_version = recent_version
        if has_relevant_insertables is not None:
            self.has_relevant_insertables = has_relevant_insertables
        if created_with_education_plan is not None:
            self.created_with_education_plan = created_with_education_plan
        if not_revision_managed is not None:
            self.not_revision_managed = not_revision_managed
        if anonymous_access_allowed is not None:
            self.anonymous_access_allowed = anonymous_access_allowed
        if anonymous_allows_export is not None:
            self.anonymous_allows_export = anonymous_allows_export
        if default_element_id is not None:
            self.default_element_id = default_element_id
        if default_workspace is not None:
            self.default_workspace = default_workspace
        if trashed_at is not None:
            self.trashed_at = trashed_at
        if public is not None:
            self.public = public
        if is_orphaned is not None:
            self.is_orphaned = is_orphaned
        if tags is not None:
            self.tags = tags
        if has_release_revisionable_objects is not None:
            self.has_release_revisionable_objects = has_release_revisionable_objects
        if user_account_limits_breached is not None:
            self.user_account_limits_breached = user_account_limits_breached
        if is_using_managed_workflow is not None:
            self.is_using_managed_workflow = is_using_managed_workflow
        if permission is not None:
            self.permission = permission
        if search_hits is not None:
            self.search_hits = search_hits

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


        :return: The description of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._description

    @description.setter
    def description(self, description):
        """Sets the description of this BTDocumentSummarySearchInfo.


        :param description: The description of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._description = description

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


        :return: The tree_href of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._tree_href

    @tree_href.setter
    def tree_href(self, tree_href):
        """Sets the tree_href of this BTDocumentSummarySearchInfo.


        :param tree_href: The tree_href of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._tree_href = tree_href

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


        :return: The is_mutable of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._is_mutable

    @is_mutable.setter
    def is_mutable(self, is_mutable):
        """Sets the is_mutable of this BTDocumentSummarySearchInfo.


        :param is_mutable: The is_mutable of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._is_mutable = is_mutable

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


        :return: The resource_type of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._resource_type

    @resource_type.setter
    def resource_type(self, resource_type):
        """Sets the resource_type of this BTDocumentSummarySearchInfo.


        :param resource_type: The resource_type of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._resource_type = resource_type

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


        :return: The project_id of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._project_id

    @project_id.setter
    def project_id(self, project_id):
        """Sets the project_id of this BTDocumentSummarySearchInfo.


        :param project_id: The project_id of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._project_id = project_id

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


        :return: The can_move of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._can_move

    @can_move.setter
    def can_move(self, can_move):
        """Sets the can_move of this BTDocumentSummarySearchInfo.


        :param can_move: The can_move of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._can_move = can_move

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


        :return: The is_container of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._is_container

    @is_container.setter
    def is_container(self, is_container):
        """Sets the is_container of this BTDocumentSummarySearchInfo.


        :param is_container: The is_container of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._is_container = is_container

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


        :return: The created_at of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: datetime
        """
        return self._created_at

    @created_at.setter
    def created_at(self, created_at):
        """Sets the created_at of this BTDocumentSummarySearchInfo.


        :param created_at: The created_at of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: datetime
        """

        self._created_at = created_at

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


        :return: The is_enterprise_owned of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._is_enterprise_owned

    @is_enterprise_owned.setter
    def is_enterprise_owned(self, is_enterprise_owned):
        """Sets the is_enterprise_owned of this BTDocumentSummarySearchInfo.


        :param is_enterprise_owned: The is_enterprise_owned of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._is_enterprise_owned = is_enterprise_owned

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


        :return: The modified_at of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: datetime
        """
        return self._modified_at

    @modified_at.setter
    def modified_at(self, modified_at):
        """Sets the modified_at of this BTDocumentSummarySearchInfo.


        :param modified_at: The modified_at of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: datetime
        """

        self._modified_at = modified_at

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


        :return: The created_by of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: BTUserBasicSummaryInfo
        """
        return self._created_by

    @created_by.setter
    def created_by(self, created_by):
        """Sets the created_by of this BTDocumentSummarySearchInfo.


        :param created_by: The created_by of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: BTUserBasicSummaryInfo
        """

        self._created_by = created_by

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


        :return: The modified_by of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: BTUserBasicSummaryInfo
        """
        return self._modified_by

    @modified_by.setter
    def modified_by(self, modified_by):
        """Sets the modified_by of this BTDocumentSummarySearchInfo.


        :param modified_by: The modified_by of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: BTUserBasicSummaryInfo
        """

        self._modified_by = modified_by

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


        :return: The owner of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: BTOwnerInfo
        """
        return self._owner

    @owner.setter
    def owner(self, owner):
        """Sets the owner of this BTDocumentSummarySearchInfo.


        :param owner: The owner of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: BTOwnerInfo
        """

        self._owner = owner

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


        :return: The has_pending_owner of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._has_pending_owner

    @has_pending_owner.setter
    def has_pending_owner(self, has_pending_owner):
        """Sets the has_pending_owner of this BTDocumentSummarySearchInfo.


        :param has_pending_owner: The has_pending_owner of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._has_pending_owner = has_pending_owner

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


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

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


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

        self._id = id

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


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

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


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

        self._href = href

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


        :return: The view_ref of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._view_ref

    @view_ref.setter
    def view_ref(self, view_ref):
        """Sets the view_ref of this BTDocumentSummarySearchInfo.


        :param view_ref: The view_ref of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._view_ref = view_ref

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


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

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


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

        self._name = name

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


        :return: The json_type of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._json_type

    @json_type.setter
    def json_type(self, json_type):
        """Sets the json_type of this BTDocumentSummarySearchInfo.


        :param json_type: The json_type of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """
        if json_type is None:
            raise ValueError("Invalid value for `json_type`, must not be `None`")  # noqa: E501

        self._json_type = json_type

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


        :return: The parent_id of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._parent_id

    @parent_id.setter
    def parent_id(self, parent_id):
        """Sets the parent_id of this BTDocumentSummarySearchInfo.


        :param parent_id: The parent_id of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._parent_id = parent_id

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


        :return: The permission_set of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: object
        """
        return self._permission_set

    @permission_set.setter
    def permission_set(self, permission_set):
        """Sets the permission_set of this BTDocumentSummarySearchInfo.


        :param permission_set: The permission_set of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: object
        """

        self._permission_set = permission_set

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


        :return: The trash of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._trash

    @trash.setter
    def trash(self, trash):
        """Sets the trash of this BTDocumentSummarySearchInfo.


        :param trash: The trash of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._trash = trash

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


        :return: The total_workspaces_updating of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: int
        """
        return self._total_workspaces_updating

    @total_workspaces_updating.setter
    def total_workspaces_updating(self, total_workspaces_updating):
        """Sets the total_workspaces_updating of this BTDocumentSummarySearchInfo.


        :param total_workspaces_updating: The total_workspaces_updating of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: int
        """

        self._total_workspaces_updating = total_workspaces_updating

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


        :return: The total_workspaces_scheduled_for_update of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: int
        """
        return self._total_workspaces_scheduled_for_update

    @total_workspaces_scheduled_for_update.setter
    def total_workspaces_scheduled_for_update(self, total_workspaces_scheduled_for_update):
        """Sets the total_workspaces_scheduled_for_update of this BTDocumentSummarySearchInfo.


        :param total_workspaces_scheduled_for_update: The total_workspaces_scheduled_for_update of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: int
        """

        self._total_workspaces_scheduled_for_update = total_workspaces_scheduled_for_update

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


        :return: The can_unshare of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._can_unshare

    @can_unshare.setter
    def can_unshare(self, can_unshare):
        """Sets the can_unshare of this BTDocumentSummarySearchInfo.


        :param can_unshare: The can_unshare of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._can_unshare = can_unshare

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


        :return: The thumbnail of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: BTThumbnailInfo
        """
        return self._thumbnail

    @thumbnail.setter
    def thumbnail(self, thumbnail):
        """Sets the thumbnail of this BTDocumentSummarySearchInfo.


        :param thumbnail: The thumbnail of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: BTThumbnailInfo
        """

        self._thumbnail = thumbnail

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


        :return: The support_team_user_and_shared of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._support_team_user_and_shared

    @support_team_user_and_shared.setter
    def support_team_user_and_shared(self, support_team_user_and_shared):
        """Sets the support_team_user_and_shared of this BTDocumentSummarySearchInfo.


        :param support_team_user_and_shared: The support_team_user_and_shared of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._support_team_user_and_shared = support_team_user_and_shared

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


        :return: The liked_by_current_user of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._liked_by_current_user

    @liked_by_current_user.setter
    def liked_by_current_user(self, liked_by_current_user):
        """Sets the liked_by_current_user of this BTDocumentSummarySearchInfo.


        :param liked_by_current_user: The liked_by_current_user of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._liked_by_current_user = liked_by_current_user

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


        :return: The document_labels of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: list[BTDocumentLabelInfo]
        """
        return self._document_labels

    @document_labels.setter
    def document_labels(self, document_labels):
        """Sets the document_labels of this BTDocumentSummarySearchInfo.


        :param document_labels: The document_labels of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: list[BTDocumentLabelInfo]
        """

        self._document_labels = document_labels

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


        :return: The number_of_times_referenced of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: int
        """
        return self._number_of_times_referenced

    @number_of_times_referenced.setter
    def number_of_times_referenced(self, number_of_times_referenced):
        """Sets the number_of_times_referenced of this BTDocumentSummarySearchInfo.


        :param number_of_times_referenced: The number_of_times_referenced of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: int
        """

        self._number_of_times_referenced = number_of_times_referenced

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


        :return: The number_of_times_copied of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: int
        """
        return self._number_of_times_copied

    @number_of_times_copied.setter
    def number_of_times_copied(self, number_of_times_copied):
        """Sets the number_of_times_copied of this BTDocumentSummarySearchInfo.


        :param number_of_times_copied: The number_of_times_copied of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: int
        """

        self._number_of_times_copied = number_of_times_copied

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


        :return: The likes of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: int
        """
        return self._likes

    @likes.setter
    def likes(self, likes):
        """Sets the likes of this BTDocumentSummarySearchInfo.


        :param likes: The likes of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: int
        """

        self._likes = likes

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


        :return: The recent_version of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: BTBaseInfo
        """
        return self._recent_version

    @recent_version.setter
    def recent_version(self, recent_version):
        """Sets the recent_version of this BTDocumentSummarySearchInfo.


        :param recent_version: The recent_version of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: BTBaseInfo
        """

        self._recent_version = recent_version

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


        :return: The has_relevant_insertables of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._has_relevant_insertables

    @has_relevant_insertables.setter
    def has_relevant_insertables(self, has_relevant_insertables):
        """Sets the has_relevant_insertables of this BTDocumentSummarySearchInfo.


        :param has_relevant_insertables: The has_relevant_insertables of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._has_relevant_insertables = has_relevant_insertables

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


        :return: The created_with_education_plan of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._created_with_education_plan

    @created_with_education_plan.setter
    def created_with_education_plan(self, created_with_education_plan):
        """Sets the created_with_education_plan of this BTDocumentSummarySearchInfo.


        :param created_with_education_plan: The created_with_education_plan of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._created_with_education_plan = created_with_education_plan

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


        :return: The not_revision_managed of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._not_revision_managed

    @not_revision_managed.setter
    def not_revision_managed(self, not_revision_managed):
        """Sets the not_revision_managed of this BTDocumentSummarySearchInfo.


        :param not_revision_managed: The not_revision_managed of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._not_revision_managed = not_revision_managed

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


        :return: The anonymous_access_allowed of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._anonymous_access_allowed

    @anonymous_access_allowed.setter
    def anonymous_access_allowed(self, anonymous_access_allowed):
        """Sets the anonymous_access_allowed of this BTDocumentSummarySearchInfo.


        :param anonymous_access_allowed: The anonymous_access_allowed of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._anonymous_access_allowed = anonymous_access_allowed

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


        :return: The anonymous_allows_export of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._anonymous_allows_export

    @anonymous_allows_export.setter
    def anonymous_allows_export(self, anonymous_allows_export):
        """Sets the anonymous_allows_export of this BTDocumentSummarySearchInfo.


        :param anonymous_allows_export: The anonymous_allows_export of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._anonymous_allows_export = anonymous_allows_export

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


        :return: The default_element_id of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._default_element_id

    @default_element_id.setter
    def default_element_id(self, default_element_id):
        """Sets the default_element_id of this BTDocumentSummarySearchInfo.


        :param default_element_id: The default_element_id of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """

        self._default_element_id = default_element_id

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


        :return: The default_workspace of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: BTBaseInfo
        """
        return self._default_workspace

    @default_workspace.setter
    def default_workspace(self, default_workspace):
        """Sets the default_workspace of this BTDocumentSummarySearchInfo.


        :param default_workspace: The default_workspace of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: BTBaseInfo
        """

        self._default_workspace = default_workspace

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


        :return: The trashed_at of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: datetime
        """
        return self._trashed_at

    @trashed_at.setter
    def trashed_at(self, trashed_at):
        """Sets the trashed_at of this BTDocumentSummarySearchInfo.


        :param trashed_at: The trashed_at of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: datetime
        """

        self._trashed_at = trashed_at

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


        :return: The public of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._public

    @public.setter
    def public(self, public):
        """Sets the public of this BTDocumentSummarySearchInfo.


        :param public: The public of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._public = public

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


        :return: The is_orphaned of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._is_orphaned

    @is_orphaned.setter
    def is_orphaned(self, is_orphaned):
        """Sets the is_orphaned of this BTDocumentSummarySearchInfo.


        :param is_orphaned: The is_orphaned of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._is_orphaned = is_orphaned

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


        :return: The tags of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: list[str]
        """
        return self._tags

    @tags.setter
    def tags(self, tags):
        """Sets the tags of this BTDocumentSummarySearchInfo.


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

        self._tags = tags

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


        :return: The has_release_revisionable_objects of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._has_release_revisionable_objects

    @has_release_revisionable_objects.setter
    def has_release_revisionable_objects(self, has_release_revisionable_objects):
        """Sets the has_release_revisionable_objects of this BTDocumentSummarySearchInfo.


        :param has_release_revisionable_objects: The has_release_revisionable_objects of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._has_release_revisionable_objects = has_release_revisionable_objects

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


        :return: The user_account_limits_breached of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._user_account_limits_breached

    @user_account_limits_breached.setter
    def user_account_limits_breached(self, user_account_limits_breached):
        """Sets the user_account_limits_breached of this BTDocumentSummarySearchInfo.


        :param user_account_limits_breached: The user_account_limits_breached of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._user_account_limits_breached = user_account_limits_breached

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


        :return: The is_using_managed_workflow of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: bool
        """
        return self._is_using_managed_workflow

    @is_using_managed_workflow.setter
    def is_using_managed_workflow(self, is_using_managed_workflow):
        """Sets the is_using_managed_workflow of this BTDocumentSummarySearchInfo.


        :param is_using_managed_workflow: The is_using_managed_workflow of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: bool
        """

        self._is_using_managed_workflow = is_using_managed_workflow

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


        :return: The permission of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: str
        """
        return self._permission

    @permission.setter
    def permission(self, permission):
        """Sets the permission of this BTDocumentSummarySearchInfo.


        :param permission: The permission of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: str
        """
        allowed_values = ["NOACCESS", "ANONYMOUS_ACCESS", "READ", "READ_COPY_EXPORT", "COMMENT", "WRITE", "RESHARE", "FULL", "OWNER"]  # noqa: E501
        if permission not in allowed_values:
            raise ValueError(
                "Invalid value for `permission` ({0}), must be one of {1}"  # noqa: E501
                .format(permission, allowed_values)
            )

        self._permission = permission

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


        :return: The search_hits of this BTDocumentSummarySearchInfo.  # noqa: E501
        :rtype: list[BTDocumentSearchHitInfo]
        """
        return self._search_hits

    @search_hits.setter
    def search_hits(self, search_hits):
        """Sets the search_hits of this BTDocumentSummarySearchInfo.


        :param search_hits: The search_hits of this BTDocumentSummarySearchInfo.  # noqa: E501
        :type: list[BTDocumentSearchHitInfo]
        """

        self._search_hits = search_hits

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

        return self.__dict__ == other.__dict__

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