# coding: utf-8 """ fatcat A scalable, versioned, API-oriented catalog of bibliographic entities and file metadata # noqa: E501 OpenAPI spec version: 0.2.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_contrib import ReleaseContrib # noqa: F401,E501 from fatcat_client.models.release_entity_abstracts import ReleaseEntityAbstracts # 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[ReleaseEntityAbstracts]', 'refs': 'list[ReleaseRef]', 'contribs': 'list[ReleaseContrib]', 'license_slug': 'str', 'language': 'str', 'publisher': 'str', 'pages': 'str', 'issue': 'str', 'volume': 'str', 'jstor_id': 'str', 'arxiv_id': 'str', 'core_id': 'str', 'pmcid': 'str', 'pmid': 'str', 'isbn13': 'str', 'wikidata_qid': 'str', 'doi': 'str', 'release_year': 'int', 'release_date': 'date', 'release_status': 'str', 'release_type': 'str', 'container_id': 'str', 'webcaptures': 'list[WebcaptureEntity]', 'filesets': 'list[FilesetEntity]', 'files': 'list[FileEntity]', 'container': 'ContainerEntity', 'work_id': 'str', 'original_title': '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', 'pages': 'pages', 'issue': 'issue', 'volume': 'volume', 'jstor_id': 'jstor_id', 'arxiv_id': 'arxiv_id', 'core_id': 'core_id', 'pmcid': 'pmcid', 'pmid': 'pmid', 'isbn13': 'isbn13', 'wikidata_qid': 'wikidata_qid', 'doi': 'doi', 'release_year': 'release_year', 'release_date': 'release_date', 'release_status': 'release_status', 'release_type': 'release_type', 'container_id': 'container_id', 'webcaptures': 'webcaptures', 'filesets': 'filesets', 'files': 'files', 'container': 'container', 'work_id': 'work_id', 'original_title': 'original_title', '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, pages=None, issue=None, volume=None, jstor_id=None, arxiv_id=None, core_id=None, pmcid=None, pmid=None, isbn13=None, wikidata_qid=None, doi=None, release_year=None, release_date=None, release_status=None, release_type=None, container_id=None, webcaptures=None, filesets=None, files=None, container=None, work_id=None, original_title=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._pages = None self._issue = None self._volume = None self._jstor_id = None self._arxiv_id = None self._core_id = None self._pmcid = None self._pmid = None self._isbn13 = None self._wikidata_qid = None self._doi = None self._release_year = None self._release_date = None self._release_status = 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._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 pages is not None: self.pages = pages if issue is not None: self.issue = issue if volume is not None: self.volume = volume if jstor_id is not None: self.jstor_id = jstor_id if arxiv_id is not None: self.arxiv_id = arxiv_id if core_id is not None: self.core_id = core_id if pmcid is not None: self.pmcid = pmcid if pmid is not None: self.pmid = pmid if isbn13 is not None: self.isbn13 = isbn13 if wikidata_qid is not None: self.wikidata_qid = wikidata_qid if doi is not None: self.doi = doi if release_year is not None: self.release_year = release_year if release_date is not None: self.release_date = release_date if release_status is not None: self.release_status = release_status 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 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[ReleaseEntityAbstracts] """ 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[ReleaseEntityAbstracts] """ 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 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 jstor_id(self): """Gets the jstor_id of this ReleaseEntity. # noqa: E501 :return: The jstor_id of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._jstor_id @jstor_id.setter def jstor_id(self, jstor_id): """Sets the jstor_id of this ReleaseEntity. :param jstor_id: The jstor_id of this ReleaseEntity. # noqa: E501 :type: str """ self._jstor_id = jstor_id @property def arxiv_id(self): """Gets the arxiv_id of this ReleaseEntity. # noqa: E501 :return: The arxiv_id of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._arxiv_id @arxiv_id.setter def arxiv_id(self, arxiv_id): """Sets the arxiv_id of this ReleaseEntity. :param arxiv_id: The arxiv_id of this ReleaseEntity. # noqa: E501 :type: str """ self._arxiv_id = arxiv_id @property def core_id(self): """Gets the core_id of this ReleaseEntity. # noqa: E501 :return: The core_id of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._core_id @core_id.setter def core_id(self, core_id): """Sets the core_id of this ReleaseEntity. :param core_id: The core_id of this ReleaseEntity. # noqa: E501 :type: str """ self._core_id = core_id @property def pmcid(self): """Gets the pmcid of this ReleaseEntity. # noqa: E501 :return: The pmcid of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._pmcid @pmcid.setter def pmcid(self, pmcid): """Sets the pmcid of this ReleaseEntity. :param pmcid: The pmcid of this ReleaseEntity. # noqa: E501 :type: str """ self._pmcid = pmcid @property def pmid(self): """Gets the pmid of this ReleaseEntity. # noqa: E501 :return: The pmid of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._pmid @pmid.setter def pmid(self, pmid): """Sets the pmid of this ReleaseEntity. :param pmid: The pmid of this ReleaseEntity. # noqa: E501 :type: str """ self._pmid = pmid @property def isbn13(self): """Gets the isbn13 of this ReleaseEntity. # noqa: E501 :return: The isbn13 of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._isbn13 @isbn13.setter def isbn13(self, isbn13): """Sets the isbn13 of this ReleaseEntity. :param isbn13: The isbn13 of this ReleaseEntity. # noqa: E501 :type: str """ self._isbn13 = isbn13 @property def wikidata_qid(self): """Gets the wikidata_qid of this ReleaseEntity. # noqa: E501 :return: The wikidata_qid of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._wikidata_qid @wikidata_qid.setter def wikidata_qid(self, wikidata_qid): """Sets the wikidata_qid of this ReleaseEntity. :param wikidata_qid: The wikidata_qid of this ReleaseEntity. # noqa: E501 :type: str """ self._wikidata_qid = wikidata_qid @property def doi(self): """Gets the doi of this ReleaseEntity. # noqa: E501 :return: The doi of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._doi @doi.setter def doi(self, doi): """Sets the doi of this ReleaseEntity. :param doi: The doi of this ReleaseEntity. # noqa: E501 :type: str """ self._doi = doi @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_status(self): """Gets the release_status of this ReleaseEntity. # noqa: E501 :return: The release_status of this ReleaseEntity. # noqa: E501 :rtype: str """ return self._release_status @release_status.setter def release_status(self, release_status): """Sets the release_status of this ReleaseEntity. :param release_status: The release_status of this ReleaseEntity. # noqa: E501 :type: str """ self._release_status = release_status @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 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