# coding: utf-8 """ fatcat A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata # noqa: E501 OpenAPI spec version: 0.3.0 Generated by: https://github.com/swagger-api/swagger-codegen.git """ import pprint import re # noqa: F401 import six from fatcat_client.models.container_entity import ContainerEntity # noqa: F401,E501 from fatcat_client.models.file_entity import FileEntity # noqa: F401,E501 from fatcat_client.models.fileset_entity import FilesetEntity # noqa: F401,E501 from fatcat_client.models.release_abstract import ReleaseAbstract # noqa: F401,E501 from fatcat_client.models.release_contrib import ReleaseContrib # noqa: F401,E501 from fatcat_client.models.release_ext_ids import ReleaseExtIds # noqa: F401,E501 from fatcat_client.models.release_ref import ReleaseRef # noqa: F401,E501 from fatcat_client.models.webcapture_entity import WebcaptureEntity # noqa: F401,E501 class ReleaseEntity(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 = { 'abstracts': 'list[ReleaseAbstract]', 'refs': 'list[ReleaseRef]', 'contribs': 'list[ReleaseContrib]', 'license_slug': 'str', 'language': 'str', 'publisher': 'str', 'version': 'str', 'number': 'str', 'pages': 'str', 'issue': 'str', 'volume': 'str', 'ext_ids': 'ReleaseExtIds', 'withdrawn_year': 'int', 'withdrawn_date': 'date', 'withdrawn_status': 'str', 'release_year': 'int', 'release_date': 'date', 'release_stage': 'str', 'release_type': 'str', 'container_id': 'str', 'webcaptures': 'list[WebcaptureEntity]', 'filesets': 'list[FilesetEntity]', 'files': 'list[FileEntity]', 'container': 'ContainerEntity', 'work_id': 'str', 'original_title': 'str', 'subtitle': 'str', 'title': 'str', 'state': 'str', 'ident': 'str', 'revision': 'str', 'redirect': 'str', 'extra': 'object', 'edit_extra': 'object' } attribute_map = { 'abstracts': 'abstracts', 'refs': 'refs', 'contribs': 'contribs', 'license_slug': 'license_slug', 'language': 'language', 'publisher': 'publisher', 'version': 'version', 'number': 'number', 'pages': 'pages', 'issue': 'issue', 'volume': 'volume', 'ext_ids': 'ext_ids', 'withdrawn_year': 'withdrawn_year', 'withdrawn_date': 'withdrawn_date', 'withdrawn_status': 'withdrawn_status', 'release_year': 'release_year', 'release_date': 'release_date', 'release_stage': 'release_stage', 'release_type': 'release_type', 'container_id': 'container_id', 'webcaptures': 'webcaptures', 'filesets': 'filesets', 'files': 'files', 'container': 'container', 'work_id': 'work_id', 'original_title': 'original_title', 'subtitle': 'subtitle', 'title': 'title', 'state': 'state', 'ident': 'ident', 'revision': 'revision', 'redirect': 'redirect', 'extra': 'extra', 'edit_extra': 'edit_extra' } def __init__(self, abstracts=None, refs=None, contribs=None, license_slug=None, language=None, publisher=None, version=None, number=None, pages=None, issue=None, volume=None, ext_ids=None, withdrawn_year=None, withdrawn_date=None, withdrawn_status=None, release_year=None, release_date=None, release_stage=None, release_type=None, container_id=None, webcaptures=None, filesets=None, files=None, container=None, work_id=None, original_title=None, subtitle=None, title=None, state=None, ident=None, revision=None, redirect=None, extra=None, edit_extra=None): # noqa: E501 """ReleaseEntity - a model defined in Swagger""" # noqa: E501 self._abstracts = None self._refs = None self._contribs = None self._license_slug = None self._language = None self._publisher = None self._version = None self._number = None self._pages = None self._issue = None self._volume = None self._ext_ids = None self._withdrawn_year = None self._withdrawn_date = None self._withdrawn_status = None self._release_year = None self._release_date = None self._release_stage = None self._release_type = None self._container_id = None self._webcaptures = None self._filesets = None self._files = None self._container = None self._work_id = None self._original_title = None self._subtitle = None self._title = None self._state = None self._ident = None self._revision = None self._redirect = None self._extra = None self._edit_extra = None self.discriminator = None if abstracts is not None: self.abstracts = abstracts if refs is not None: self.refs = refs if contribs is not None: self.contribs = contribs if license_slug is not None: self.license_slug = license_slug if language is not None: self.language = language if publisher is not None: self.publisher = publisher if version is not None: self.version = version if number is not None: self.number = number if pages is not None: self.pages = pages if issue is not None: self.issue = issue if volume is not None: self.volume = volume self.ext_ids = ext_ids if withdrawn_year is not None: self.withdrawn_year = withdrawn_year if withdrawn_date is not None: self.withdrawn_date = withdrawn_date if withdrawn_status is not None: self.withdrawn_status = withdrawn_status if release_year is not None: self.release_year = release_year if release_date is not None: self.release_date = release_date if release_stage is not None: self.release_stage = release_stage if release_type is not None: self.release_type = release_type if container_id is not None: self.container_id = container_id if webcaptures is not None: self.webcaptures = webcaptures if filesets is not None: self.filesets = filesets if files is not None: self.files = files if container is not None: self.container = container if work_id is not None: self.work_id = work_id if original_title is not None: self.original_title = original_title if subtitle is not None: self.subtitle = subtitle if title is not None: self.title = title if state is not None: self.state = state if ident is not None: self.ident = ident if revision is not None: self.revision = revision if redirect is not None: self.redirect = redirect if extra is not None: self.extra = extra if edit_extra is not None: self.edit_extra = edit_extra @property def abstracts(self): """Gets the abstracts of this ReleaseEntity. # noqa: E501 :return: The abstracts of this ReleaseEntity. # noqa: E501 :rtype: list[ReleaseAbstract] """ return self._abstracts @abstracts.setter def abstracts(self, abstracts): """Sets the abstracts of this ReleaseEntity. :param abstracts: The abstracts of this ReleaseEntity. # noqa: E501 :type: list[ReleaseAbstract] """ self._abstracts = abstracts @property def refs(self): """Gets the refs of this ReleaseEntity. # noqa: E501 :return: The refs of this ReleaseEntity. # noqa: E501 :rtype: list[ReleaseRef] """ return self._refs @refs.setter def refs(self, refs): """Sets the refs of this ReleaseEntity. :param refs: The refs of this ReleaseEntity. # noqa: E501 :type: list[ReleaseRef] """ self._refs = refs @property def contribs(self): """Gets the contribs of this ReleaseEntity. # noqa: E501 :return: The contribs of this ReleaseEntity. # noqa: E501 :rtype: list[ReleaseContrib] """ return self._contribs @contribs.setter def contribs(self, contribs): """Sets the contribs of this ReleaseEntity. :param contribs: The contribs of this ReleaseEntity. # noqa: E501 :type: list[ReleaseContrib] """ self._contribs = contribs @property def license_slug(self): """Gets the license_slug of this ReleaseEntity. # noqa: E501 Short version of license name. Eg, 'CC-BY' # noqa: E501 :return: The license_slug of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._license_slug @license_slug.setter def license_slug(self, license_slug): """Sets the license_slug of this ReleaseEntity. Short version of license name. Eg, 'CC-BY' # noqa: E501 :param license_slug: The license_slug of this ReleaseEntity. # noqa: E501 :type: str """ self._license_slug = license_slug @property def language(self): """Gets the language of this ReleaseEntity. # noqa: E501 Two-letter RFC1766/ISO639-1 language code, with extensions # noqa: E501 :return: The language of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._language @language.setter def language(self, language): """Sets the language of this ReleaseEntity. Two-letter RFC1766/ISO639-1 language code, with extensions # noqa: E501 :param language: The language of this ReleaseEntity. # noqa: E501 :type: str """ self._language = language @property def publisher(self): """Gets the publisher of this ReleaseEntity. # noqa: E501 :return: The publisher of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._publisher @publisher.setter def publisher(self, publisher): """Sets the publisher of this ReleaseEntity. :param publisher: The publisher of this ReleaseEntity. # noqa: E501 :type: str """ self._publisher = publisher @property def version(self): """Gets the version of this ReleaseEntity. # noqa: E501 :return: The version of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._version @version.setter def version(self, version): """Sets the version of this ReleaseEntity. :param version: The version of this ReleaseEntity. # noqa: E501 :type: str """ self._version = version @property def number(self): """Gets the number of this ReleaseEntity. # noqa: E501 :return: The number of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._number @number.setter def number(self, number): """Sets the number of this ReleaseEntity. :param number: The number of this ReleaseEntity. # noqa: E501 :type: str """ self._number = number @property def pages(self): """Gets the pages of this ReleaseEntity. # noqa: E501 :return: The pages of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._pages @pages.setter def pages(self, pages): """Sets the pages of this ReleaseEntity. :param pages: The pages of this ReleaseEntity. # noqa: E501 :type: str """ self._pages = pages @property def issue(self): """Gets the issue of this ReleaseEntity. # noqa: E501 :return: The issue of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._issue @issue.setter def issue(self, issue): """Sets the issue of this ReleaseEntity. :param issue: The issue of this ReleaseEntity. # noqa: E501 :type: str """ self._issue = issue @property def volume(self): """Gets the volume of this ReleaseEntity. # noqa: E501 :return: The volume of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._volume @volume.setter def volume(self, volume): """Sets the volume of this ReleaseEntity. :param volume: The volume of this ReleaseEntity. # noqa: E501 :type: str """ self._volume = volume @property def ext_ids(self): """Gets the ext_ids of this ReleaseEntity. # noqa: E501 :return: The ext_ids of this ReleaseEntity. # noqa: E501 :rtype: ReleaseExtIds """ return self._ext_ids @ext_ids.setter def ext_ids(self, ext_ids): """Sets the ext_ids of this ReleaseEntity. :param ext_ids: The ext_ids of this ReleaseEntity. # noqa: E501 :type: ReleaseExtIds """ if ext_ids is None: raise ValueError("Invalid value for `ext_ids`, must not be `None`") # noqa: E501 self._ext_ids = ext_ids @property def withdrawn_year(self): """Gets the withdrawn_year of this ReleaseEntity. # noqa: E501 :return: The withdrawn_year of this ReleaseEntity. # noqa: E501 :rtype: int """ return self._withdrawn_year @withdrawn_year.setter def withdrawn_year(self, withdrawn_year): """Sets the withdrawn_year of this ReleaseEntity. :param withdrawn_year: The withdrawn_year of this ReleaseEntity. # noqa: E501 :type: int """ self._withdrawn_year = withdrawn_year @property def withdrawn_date(self): """Gets the withdrawn_date of this ReleaseEntity. # noqa: E501 :return: The withdrawn_date of this ReleaseEntity. # noqa: E501 :rtype: date """ return self._withdrawn_date @withdrawn_date.setter def withdrawn_date(self, withdrawn_date): """Sets the withdrawn_date of this ReleaseEntity. :param withdrawn_date: The withdrawn_date of this ReleaseEntity. # noqa: E501 :type: date """ self._withdrawn_date = withdrawn_date @property def withdrawn_status(self): """Gets the withdrawn_status of this ReleaseEntity. # noqa: E501 :return: The withdrawn_status of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._withdrawn_status @withdrawn_status.setter def withdrawn_status(self, withdrawn_status): """Sets the withdrawn_status of this ReleaseEntity. :param withdrawn_status: The withdrawn_status of this ReleaseEntity. # noqa: E501 :type: str """ self._withdrawn_status = withdrawn_status @property def release_year(self): """Gets the release_year of this ReleaseEntity. # noqa: E501 :return: The release_year of this ReleaseEntity. # noqa: E501 :rtype: int """ return self._release_year @release_year.setter def release_year(self, release_year): """Sets the release_year of this ReleaseEntity. :param release_year: The release_year of this ReleaseEntity. # noqa: E501 :type: int """ self._release_year = release_year @property def release_date(self): """Gets the release_date of this ReleaseEntity. # noqa: E501 :return: The release_date of this ReleaseEntity. # noqa: E501 :rtype: date """ return self._release_date @release_date.setter def release_date(self, release_date): """Sets the release_date of this ReleaseEntity. :param release_date: The release_date of this ReleaseEntity. # noqa: E501 :type: date """ self._release_date = release_date @property def release_stage(self): """Gets the release_stage of this ReleaseEntity. # noqa: E501 :return: The release_stage of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._release_stage @release_stage.setter def release_stage(self, release_stage): """Sets the release_stage of this ReleaseEntity. :param release_stage: The release_stage of this ReleaseEntity. # noqa: E501 :type: str """ self._release_stage = release_stage @property def release_type(self): """Gets the release_type of this ReleaseEntity. # noqa: E501 :return: The release_type of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._release_type @release_type.setter def release_type(self, release_type): """Sets the release_type of this ReleaseEntity. :param release_type: The release_type of this ReleaseEntity. # noqa: E501 :type: str """ self._release_type = release_type @property def container_id(self): """Gets the container_id of this ReleaseEntity. # noqa: E501 :return: The container_id of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._container_id @container_id.setter def container_id(self, container_id): """Sets the container_id of this ReleaseEntity. :param container_id: The container_id of this ReleaseEntity. # noqa: E501 :type: str """ self._container_id = container_id @property def webcaptures(self): """Gets the webcaptures of this ReleaseEntity. # noqa: E501 Optional; GET-only # noqa: E501 :return: The webcaptures of this ReleaseEntity. # noqa: E501 :rtype: list[WebcaptureEntity] """ return self._webcaptures @webcaptures.setter def webcaptures(self, webcaptures): """Sets the webcaptures of this ReleaseEntity. Optional; GET-only # noqa: E501 :param webcaptures: The webcaptures of this ReleaseEntity. # noqa: E501 :type: list[WebcaptureEntity] """ self._webcaptures = webcaptures @property def filesets(self): """Gets the filesets of this ReleaseEntity. # noqa: E501 Optional; GET-only # noqa: E501 :return: The filesets of this ReleaseEntity. # noqa: E501 :rtype: list[FilesetEntity] """ return self._filesets @filesets.setter def filesets(self, filesets): """Sets the filesets of this ReleaseEntity. Optional; GET-only # noqa: E501 :param filesets: The filesets of this ReleaseEntity. # noqa: E501 :type: list[FilesetEntity] """ self._filesets = filesets @property def files(self): """Gets the files of this ReleaseEntity. # noqa: E501 Optional; GET-only # noqa: E501 :return: The files of this ReleaseEntity. # noqa: E501 :rtype: list[FileEntity] """ return self._files @files.setter def files(self, files): """Sets the files of this ReleaseEntity. Optional; GET-only # noqa: E501 :param files: The files of this ReleaseEntity. # noqa: E501 :type: list[FileEntity] """ self._files = files @property def container(self): """Gets the container of this ReleaseEntity. # noqa: E501 Optional; GET-only # noqa: E501 :return: The container of this ReleaseEntity. # noqa: E501 :rtype: ContainerEntity """ return self._container @container.setter def container(self, container): """Sets the container of this ReleaseEntity. Optional; GET-only # noqa: E501 :param container: The container of this ReleaseEntity. # noqa: E501 :type: ContainerEntity """ self._container = container @property def work_id(self): """Gets the work_id of this ReleaseEntity. # noqa: E501 :return: The work_id of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._work_id @work_id.setter def work_id(self, work_id): """Sets the work_id of this ReleaseEntity. :param work_id: The work_id of this ReleaseEntity. # noqa: E501 :type: str """ self._work_id = work_id @property def original_title(self): """Gets the original_title of this ReleaseEntity. # noqa: E501 Title in original language (or, the language of the full text of this release) # noqa: E501 :return: The original_title of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._original_title @original_title.setter def original_title(self, original_title): """Sets the original_title of this ReleaseEntity. Title in original language (or, the language of the full text of this release) # noqa: E501 :param original_title: The original_title of this ReleaseEntity. # noqa: E501 :type: str """ self._original_title = original_title @property def subtitle(self): """Gets the subtitle of this ReleaseEntity. # noqa: E501 Avoid this field if possible, and merge with title; usually English # noqa: E501 :return: The subtitle of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._subtitle @subtitle.setter def subtitle(self, subtitle): """Sets the subtitle of this ReleaseEntity. Avoid this field if possible, and merge with title; usually English # noqa: E501 :param subtitle: The subtitle of this ReleaseEntity. # noqa: E501 :type: str """ self._subtitle = subtitle @property def title(self): """Gets the title of this ReleaseEntity. # noqa: E501 Required for valid entities. The title used in citations and for display; usually English # noqa: E501 :return: The title of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._title @title.setter def title(self, title): """Sets the title of this ReleaseEntity. Required for valid entities. The title used in citations and for display; usually English # noqa: E501 :param title: The title of this ReleaseEntity. # noqa: E501 :type: str """ self._title = title @property def state(self): """Gets the state of this ReleaseEntity. # noqa: E501 :return: The state of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._state @state.setter def state(self, state): """Sets the state of this ReleaseEntity. :param state: The state of this ReleaseEntity. # noqa: E501 :type: str """ allowed_values = ["wip", "active", "redirect", "deleted"] # noqa: E501 if state not in allowed_values: raise ValueError( "Invalid value for `state` ({0}), must be one of {1}" # noqa: E501 .format(state, allowed_values) ) self._state = state @property def ident(self): """Gets the ident of this ReleaseEntity. # noqa: E501 base32-encoded unique identifier # noqa: E501 :return: The ident of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._ident @ident.setter def ident(self, ident): """Sets the ident of this ReleaseEntity. base32-encoded unique identifier # noqa: E501 :param ident: The ident of this ReleaseEntity. # noqa: E501 :type: str """ if ident is not None and len(ident) > 26: raise ValueError("Invalid value for `ident`, length must be less than or equal to `26`") # noqa: E501 if ident is not None and len(ident) < 26: raise ValueError("Invalid value for `ident`, length must be greater than or equal to `26`") # noqa: E501 if ident is not None and not re.search('[a-zA-Z2-7]{26}', ident): # noqa: E501 raise ValueError("Invalid value for `ident`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`") # noqa: E501 self._ident = ident @property def revision(self): """Gets the revision of this ReleaseEntity. # noqa: E501 UUID (lower-case, dash-separated, hex-encoded 128-bit) # noqa: E501 :return: The revision of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._revision @revision.setter def revision(self, revision): """Sets the revision of this ReleaseEntity. UUID (lower-case, dash-separated, hex-encoded 128-bit) # noqa: E501 :param revision: The revision of this ReleaseEntity. # noqa: E501 :type: str """ if revision is not None and len(revision) > 36: raise ValueError("Invalid value for `revision`, length must be less than or equal to `36`") # noqa: E501 if revision is not None and len(revision) < 36: raise ValueError("Invalid value for `revision`, length must be greater than or equal to `36`") # noqa: E501 if revision is not None and not re.search('[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}', revision): # noqa: E501 raise ValueError("Invalid value for `revision`, must be a follow pattern or equal to `/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/`") # noqa: E501 self._revision = revision @property def redirect(self): """Gets the redirect of this ReleaseEntity. # noqa: E501 base32-encoded unique identifier # noqa: E501 :return: The redirect of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._redirect @redirect.setter def redirect(self, redirect): """Sets the redirect of this ReleaseEntity. base32-encoded unique identifier # noqa: E501 :param redirect: The redirect of this ReleaseEntity. # noqa: E501 :type: str """ if redirect is not None and len(redirect) > 26: raise ValueError("Invalid value for `redirect`, length must be less than or equal to `26`") # noqa: E501 if redirect is not None and len(redirect) < 26: raise ValueError("Invalid value for `redirect`, length must be greater than or equal to `26`") # noqa: E501 if redirect is not None and not re.search('[a-zA-Z2-7]{26}', redirect): # noqa: E501 raise ValueError("Invalid value for `redirect`, must be a follow pattern or equal to `/[a-zA-Z2-7]{26}/`") # noqa: E501 self._redirect = redirect @property def extra(self): """Gets the extra of this ReleaseEntity. # noqa: E501 :return: The extra of this ReleaseEntity. # noqa: E501 :rtype: object """ return self._extra @extra.setter def extra(self, extra): """Sets the extra of this ReleaseEntity. :param extra: The extra of this ReleaseEntity. # noqa: E501 :type: object """ self._extra = extra @property def edit_extra(self): """Gets the edit_extra of this ReleaseEntity. # noqa: E501 :return: The edit_extra of this ReleaseEntity. # noqa: E501 :rtype: object """ return self._edit_extra @edit_extra.setter def edit_extra(self, edit_extra): """Sets the edit_extra of this ReleaseEntity. :param edit_extra: The edit_extra of this ReleaseEntity. # noqa: E501 :type: object """ self._edit_extra = edit_extra 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, ReleaseEntity): return False return self.__dict__ == other.__dict__ def __ne__(self, other): """Returns true if both objects are not equal""" return not self == other