aboutsummaryrefslogtreecommitdiffstats
path: root/rust/fatcat-openapi/api.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'rust/fatcat-openapi/api.yaml')
-rw-r--r--rust/fatcat-openapi/api.yaml4074
1 files changed, 0 insertions, 4074 deletions
diff --git a/rust/fatcat-openapi/api.yaml b/rust/fatcat-openapi/api.yaml
deleted file mode 100644
index 1b533a30..00000000
--- a/rust/fatcat-openapi/api.yaml
+++ /dev/null
@@ -1,4074 +0,0 @@
----
-swagger: "2.0"
-info:
- title: fatcat
- version: 0.3.1
- description: |
- Fatcat is a scalable, versioned, API-oriented catalog of bibliographic
- entities and file metadata.
-
- <!-- STARTLONGDESCRIPTION -->
- These API reference documents, along with client software libraries, are
- generated automatically from an OpenAPI 2.0 ("Swagger") definition file.
-
- ## Introduction
-
-
- A higher-level introduction to the API, as well as a description of the
- fatcat data model, are available in ["The Fatcat Guide"](https://guide.fatcat.wiki/).
- The guide also includes a [Cookbook](https://guide.fatcat.wiki/cookbook.html)
- section demonstrating end-to-end tasks like creating entities as part of
- editgroups, or safely merging duplicate entities.
-
- ### Expectations and Best Practices
-
- A test/staging QA API instance of fatcat is available at
- <https://api.qa.fatcat.wiki/v0>. The database backing this instance is
- separate from the production interface, and is periodically rebuilt from
- snapshots of the full production database, meaning that edits on the QA
- server will *NOT* persist, and that semantics like the changelog index
- monotonically increasing *MAY* be broken. Developers are expexcted to test
- their scripts and tools against the QA instance before running against
- production.
-
- Fatcat is made available as a gratis (no cost) and libre (freedom
- preserving) service to the public, with limited funding and resources. We
- welcome new and unforseen uses and contributions, but may need to impose
- restrictions (like rate-limits) to keep the service functional for other
- users, and in extreme cases reserve the option to block accounts and IP
- ranges if necessary to keep the service operational.
-
- The Internet Archive owns and operates it's own server equipment and data
- centers, and operations are optimized for low-cost, not high-availability.
- Users and partners should expect some downtime on the fatcat API, on the
- order of hours a month.
-
- Periodic metadata exports are available for batch processing, and database
- snapshots can be used to create locally-hosted mirrors of the service for
- more intensive and reliable querying.
-
- ### Other Nitty Gritties
-
- Cross-origin requests are allowed for the API service, to enable third
- parties to bulid in-browser applications.
-
- A metadata search service is available at <https://search.fatcat.wiki> (and
- <https://search.qa.fatcat.wiki>). The API is currently the raw
- elasticsearch API, with only GET (read) requests allowed. This public
- service is experimental and may be removed or limited in the future.
-
- ## Authentication
-
- The API allows basic read-only "GET" HTTP requests with no authentication.
- Proposing changes to the metadata, or other mutating requests ("PUT",
- "POST", "DELETE") all require authentication, and some operations require
- additional account permissions.
-
- End-user account creation and login happens through the web interface. From
- a logged-in editor profile page, you can generate a API token. Tokens are
- "macaroons", similar to JWT tokens, and are used for all API
- authentication. The web interface includes macaroons in browser cookies and
- passes them through to the API to authenticate editor actions.
-
- <!-- ReDoc-Inject: <security-definitions> -->
- <!-- ENDLONGDESCRIPTION -->
-
- termsOfService: "https://guide.fatcat.wiki/policies.html"
- contact:
- name: "Internet Archive Web Group"
- email: "webservices@archive.org"
- url: "https://fatcat.wiki"
- x-logo:
- url: "https://fatcat.wiki/static/paper_man_confused.gif"
- altText: "Confused Papers Man (Logo)"
- backgroundColor: "#FFFFFF"
-schemes: [https]
-basePath: /v0
-host: api.fatcat.wiki
-consumes:
- - application/json
-produces:
- - application/json
-
-x-servers:
-- url: https://api.fatcat.wiki/v0
- description: "Production Server"
-- url: https://api.qa.fatcat.wiki/v0
- description: "QA Server"
-
-securityDefinitions:
- Bearer:
- type: apiKey
- name: Authorization
- in: header
- description: |
- The only current API authentication mechanism is HTTP bearer
- authentication using the `Authorization` HTTP header. The header should
- be formatted as the string "Bearer", then a space, then API token (in the
- usual base64 string encoding).
-
- An example HTTP request would look on the wire like:
-
- GET /v0/auth/check HTTP/1.1
- Accept: */*
- Accept-Encoding: gzip, deflate
- Authorization: Bearer AgEPZGV2LmZhdGNhdC53aWtpAhYyMDE5MDEwMS1kZXYtZHVtbXkta2V5AAImZWRpdG9yX2lkID0gYWFhYWFhYWFhYWFhYmt2a2FhYWFhYWFhYWkAAht0aW1lID4gMjAxOS0wMS0wOVQwMDo1Nzo1MloAAAYgnroNha1hSftChtxHGTnLEmM/pY8MeQS/jBSV0UNvXug=
- Connection: keep-alive
- Host: api.qa.fatcat.wiki
- User-Agent: HTTPie/0.9.8
-
- Headers can be passed on the command line using `http` (HTTPie) like:
-
- http get https://api.qa.fatcat.wiki/v0/auth/check Authorization:"Bearer AgEPZGV2LmZhdGNhdC53aWtpAhYyMDE5MDEwMS1kZXYtZHVtbXkta2V5AAImZWRpdG9yX2lkID0gYWFhYWFhYWFhYWFhYmt2a2FhYWFhYWFhYWkAAht0aW1lID4gMjAxOS0wMS0wOVQwMDo1Nzo1MloAAAYgnroNha1hSftChtxHGTnLEmM/pY8MeQS/jBSV0UNvXug="
-
- Or with `curl`:
-
- curl -H "Authorization: Bearer AgEPZGV2LmZhdGNhdC53aWtpAhYyMDE5MDEwMS1kZXYtZHVtbXkta2V5AAImZWRpdG9yX2lkID0gYWFhYWFhYWFhYWFhYmt2a2FhYWFhYWFhYWkAAht0aW1lID4gMjAxOS0wMS0wOVQwMDo1Nzo1MloAAAYgnroNha1hSftChtxHGTnLEmM/pY8MeQS/jBSV0UNvXug=" https://qa.fatcat.wiki/v0/auth/check
-
-tags: # TAGLINE
- - name: containers # TAGLINE
- x-displayName: "Containers" # TAGLINE
- description: | # TAGLINE
- **Container** entities represent publication venues like journals, # TAGLINE
- conference proceedings, book series, or blogs. They group publications # TAGLINE
- ("releases"). # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [Container Entity Reference](https://guide.fatcat.wiki/entity_container.html). # TAGLINE
- - name: creators # TAGLINE
- x-displayName: "Creators" # TAGLINE
- description: | # TAGLINE
- **Creator** entities represent individuals (or organizations, or other # TAGLINE
- agents) who contribute to the creation of specific releases # TAGLINE
- (publications). # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [Creator Entity Reference](https://guide.fatcat.wiki/entity_creator.html). # TAGLINE
- - name: files # TAGLINE
- x-displayName: "Files" # TAGLINE
- description: | # TAGLINE
- **File** entities represent unique digital files which are full # TAGLINE
- manifestations of specific releases (publications), such as fulltext PDF # TAGLINE
- files, JATS XML documents, or video files. File entities also include a # TAGLINE
- set of locations where they can be found on the public web. # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [File Entity Reference](https://guide.fatcat.wiki/entity_file.html). # TAGLINE
- - name: filesets # TAGLINE
- x-displayName: "Filesets" # TAGLINE
- description: | # TAGLINE
- **Fileset** entities represent sets of digital files, as well as locations # TAGLINE
- where they can be found on the public web. Filesets most commonly # TAGLINE
- represent datasets consisting of serveral data and metadata files. # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [Fileset Entity Reference](https://guide.fatcat.wiki/entity_fileset.html). # TAGLINE
- - name: webcaptures # TAGLINE
- x-displayName: "Webcaptures" # TAGLINE
- description: | # TAGLINE
- **Web Capture** entities represent archival snapshots of web pages (or # TAGLINE
- other web resources), which are usually complete manifestations of a # TAGLINE
- specific release entity. Web Captures also include a set of locations # TAGLINE
- (wayback replay instances or WARC files) where the capture can be found. # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [Web Capture Entity Reference](https://guide.fatcat.wiki/entity_webcapture.html). # TAGLINE
- - name: releases # TAGLINE
- x-displayName: "Releases" # TAGLINE
- description: | # TAGLINE
- **Release** entities represent specific published versions of a research # TAGLINE
- work, such as a pre-print, a journal article, a book (or chapter), or a # TAGLINE
- scholarly blog post. Releases are always grouped together under Works; # TAGLINE
- they may be published in a specific Container; they may have known # TAGLINE
- Creators; and there may exist known File/Fileset/WebCapture digital copies # TAGLINE
- of the release. # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [Release Entity Reference](https://guide.fatcat.wiki/entity_release.html). # TAGLINE
- - name: works # TAGLINE
- x-displayName: "Works" # TAGLINE
- description: | # TAGLINE
- **Work** entities group several Release entities which are different # TAGLINE
- versions of the same abstract piece of research. For example, three # TAGLINE
- release entities representing the pre-print, published article, and # TAGLINE
- retraction stages of the same journal paper would be grouped under a # TAGLINE
- single work. # TAGLINE
-
- See the "Catalog Style Guide" section of the guide for details and # TAGLINE
- semantics of what should be included in specific entity fields. # TAGLINE
- Specifically, the # TAGLINE
- [Work Entity Reference](https://guide.fatcat.wiki/entity_work.html). # TAGLINE
- - name: editgroups # TAGLINE
- x-displayName: "Editgroups" # TAGLINE
- description: | # TAGLINE
- **Editgroups** are sets of changes, each to individual entities in the # TAGLINE
- catalog. Every edit must be part of an editgroup which is reviewed and # TAGLINE
- accepted (merged) as a whole. # TAGLINE
- - name: editors # TAGLINE
- x-displayName: "Editors" # TAGLINE
- description: | # TAGLINE
- **Editors** are human user accounts and bots that make changes to the # TAGLINE
- Fatcat catalog. # TAGLINE
-
- The API allows fetching (and updating) metadata about individual editors, # TAGLINE
- as well as fetching editor's annotation and edit history. # TAGLINE
- - name: changelog # TAGLINE
- x-displayName: "Changelog" # TAGLINE
- description: | # TAGLINE
- The **Changelog** is the ordered feed of editgroups which have been # TAGLINE
- accepted into the catalog. # TAGLINE
- - name: auth # TAGLINE
- x-displayName: "Auth Methods" # TAGLINE
- description: | # TAGLINE
- Helper methods and internal APIs for editor authentication. # TAGLINE
-
-x-tagGroups:
- - name: Entities
- tags:
- - containers
- - creators
- - files
- - filesets
- - webcaptures
- - releases
- - works
- - name: Editing
- tags:
- - editors
- - editgroups
- - changelog
- - name: Other
- tags:
- - auth
-
-# don't want these to be rust types (at least for now)
-x-fatcat-ident: &FATCATIDENT
- type: string
- pattern: "[a-zA-Z2-7]{26}"
- minLength: 26
- maxLength: 26
- description: "base32-encoded unique identifier"
-x-fatcat-ident-example: &FATCATIDENTEXAMPLE
- example: "q3nouwy3nnbsvo3h5klxsx4a7y"
-x-fatcat-uuid: &FATCATUUID
- type: string
- pattern: "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}"
- minLength: 36
- maxLength: 36
- description: "UUID (lower-case, dash-separated, hex-encoded 128-bit)"
-x-fatcat-uuid-example: &FATCATUUIDEXAMPLE
- example: "86daea5b-1b6b-432a-bb67-ea97795f80fe"
-x-issn: &FATCATISSN
- type: string
- pattern: "\\d{4}-\\d{3}[0-9X]"
- minLength: 9
- maxLength: 9
-x-issn-example: &FATCATISSNEXAMPLE
- example: "1234-5678"
-x-orcid: &FATCATORCID
- type: string
- pattern: "\\d{4}-\\d{4}-\\d{4}-\\d{3}[\\dX]"
- minLength: 19
- maxLength: 19
- description: "ORCiD (https://orcid.org) identifier"
-x-orcid-example: &FATCATORCIDEXAMPLE
- example: "0000-0002-1825-0097"
-x-md5: &FATCATMD5
- type: string
- pattern: "[a-f0-9]{32}"
- minLength: 32
- maxLength: 32
- description: "MD5 hash of data, in hex encoding"
-x-md5-example: &FATCATMD5EXAMPLE
- example: "1b39813549077b2347c0f370c3864b40"
-x-sha1: &FATCATSHA1
- type: string
- pattern: "[a-f0-9]{40}"
- minLength: 40
- maxLength: 40
- description: "SHA-1 hash of data, in hex encoding"
-x-sha1-example: &FATCATSHA1EXAMPLE
- example: "e9dd75237c94b209dc3ccd52722de6931a310ba3"
-x-sha256: &FATCATSHA256
- type: string
- pattern: "[a-f0-9]{64}"
- minLength: 64
- maxLength: 64
- description: "SHA-256 hash of data, in hex encoding"
-x-sha256-example: &FATCATSHA256EXAMPLE
- example: "cb1c378f464d5935ddaa8de28446d82638396c61f042295d7fb85e3cccc9e452"
-
-# Common properties across entities
-x-entity-props: &ENTITYPROPS
- state:
- type: string
- enum: ["wip", "active", "redirect", "deleted"]
- example: "active"
- ident:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- revision:
- <<: *FATCATUUID
- <<: *FATCATUUIDEXAMPLE
- redirect:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- extra:
- type: object
- description: |
- Free-form JSON metadata that will be stored with the other entity
- metadata. See guide for (unenforced) schema conventions.
- additionalProperties: {}
- edit_extra:
- type: object
- description: |
- Free-form JSON metadata that will be stored with specific entity edits
- (eg, creation/update/delete).
- additionalProperties: {}
-
-definitions:
- error_response:
- type: object
- required:
- - success
- - error
- - message
- properties:
- success:
- type: boolean
- example: false
- error:
- type: string
- example: "unexpected-thing"
- message:
- type: string
- example: "A really confusing, totally unexpected thing happened"
- success:
- type: object
- required:
- - success
- - message
- properties:
- success:
- type: boolean
- example: true
- message:
- type: string
- example: "The computers did the thing successfully!"
- container_entity:
- type: object
- # required for creation: name
- properties:
- <<: *ENTITYPROPS
- name:
- type: string
- description: "Name of the container (eg, Journal title). Required for entity creation."
- example: "Journal of Important Results"
- container_type:
- type: string
- description: "Type of container, eg 'journal' or 'proceedings'. See Guide for list of valid types."
- example: "journal"
- publisher:
- type: string
- description: |
- Name of the organization or entity responsible for publication. Not
- the complete imprint/brand.
- example: "Society of Curious Students"
- issnl:
- description: "Linking ISSN number (ISSN-L). Should be valid and registered with issn.org"
- <<: *FATCATISSN
- <<: *FATCATISSNEXAMPLE
- wikidata_qid:
- type: string
- example: "Q42812"
- creator_entity:
- type: object
- # required for creation: display_name
- properties:
- <<: *ENTITYPROPS
- display_name:
- type: string
- example: "Grace Hopper"
- description: |
- Name as should be displayed in web interface or in author lists (not
- index/sorted). Required for valid entities.
- given_name:
- type: string
- description: |
- In English commonly the first name, but ordering is context and
- culture specific.
- surname:
- type: string
- description: |
- In English commonly the last, or family name, but ordering is context
- and culture specific.
- orcid:
- <<: *FATCATORCID
- <<: *FATCATORCIDEXAMPLE
- wikidata_qid:
- type: string
- example: "Q42812"
- description: "Wikidata entity QID"
- file_entity:
- type: object
- properties:
- <<: *ENTITYPROPS
- size:
- type: integer
- example: 1048576
- format: int64
- description: "Size of file in bytes. Non-zero."
- md5:
- <<: *FATCATMD5
- <<: *FATCATMD5EXAMPLE
- sha1:
- <<: *FATCATSHA1
- <<: *FATCATSHA1EXAMPLE
- sha256:
- <<: *FATCATSHA256
- <<: *FATCATSHA256EXAMPLE
- urls:
- type: array
- items:
- $ref: "#/definitions/file_url"
- mimetype:
- type: string
- example: "application/pdf"
- release_ids:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Set of identifier of release entities this file represents a full
- manifestation of. Usually a single release, but some files contain
- content of multiple full releases (eg, an issue of a journal).
- releases:
- description: |
- Full release entities, included in GET responses when `releases`
- included in `expand` parameter. Ignored if included in PUT or POST
- requests.
- type: array
- items:
- $ref: "#/definitions/release_entity"
- file_url:
- type: object
- required:
- - url
- - rel
- properties:
- url:
- type: string
- format: url
- example: "https://example.edu/~frau/prcding.pdf"
- description: |
- URL/URI pointing directly to a machine retrievable copy of this exact
- file.
- rel:
- type: string
- example: "web"
- description: |
- Indicates type of host this URL points to. Eg, "publisher",
- "repository", "webarchive". See guide for list of acceptable values.
- fileset_entity:
- type: object
- properties:
- <<: *ENTITYPROPS
- manifest:
- # limit of 200 files, at least to start
- type: array
- items:
- $ref: "#/definitions/fileset_file"
- urls:
- type: array
- items:
- $ref: "#/definitions/fileset_url"
- release_ids:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Set of identifier of release entities this fileset represents a full
- manifestation of. Usually a single release.
- releases:
- type: array
- items:
- $ref: "#/definitions/release_entity"
- description: |
- Full release entities, included in GET responses when `releases`
- included in `expand` parameter. Ignored if included in PUT or POST
- requests.
- fileset_url:
- type: object
- required:
- - url
- - rel
- properties:
- url:
- type: string
- format: url
- example: "https://example.edu/~frau/prcding.pdf"
- rel:
- type: string
- example: "webarchive"
- description: |
- Indicates type of host this URL points to. See guide for list of
- acceptable values.
- fileset_file:
- type: object
- required:
- - path
- - size
- properties:
- path:
- type: string
- example: "img/cat.png"
- description: |
- Path name of file within this fileset (eg, directory)
- size:
- type: integer
- example: 1048576
- format: int64
- description: "File size in bytes"
- md5:
- <<: *FATCATMD5
- <<: *FATCATMD5EXAMPLE
- sha1:
- <<: *FATCATSHA1
- <<: *FATCATSHA1EXAMPLE
- sha256:
- <<: *FATCATSHA256
- <<: *FATCATSHA256EXAMPLE
- extra:
- type: object
- additionalProperties: {}
- description: |
- Free-form additional metadata about this specific file in the set.
- Eg, `mimetype`. See guide for nomative (but unenforced) schema
- fields.
- webcapture_entity:
- type: object
- properties:
- <<: *ENTITYPROPS
- cdx:
- # limit of 200 CDX lines, at least to start?
- type: array
- items:
- $ref: "#/definitions/webcapture_cdx_line"
- archive_urls:
- type: array
- items:
- $ref: "#/definitions/webcapture_url"
- original_url:
- type: string
- format: url
- example: "http://asheesh.org"
- description: "Base URL of the primary resource this is a capture of"
- timestamp:
- type: string
- format: date-time
- description: |
- Same format as CDX line timestamp (UTC, etc). Corresponds to the
- overall capture timestamp. Should generally be the timestamp of
- capture of the primary resource URL.
- release_ids:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Set of identifier of release entities this fileset represents a full
- manifestation of. Usually a single release.
- releases:
- type: array
- items:
- $ref: "#/definitions/release_entity"
- description: |
- Full release entities, included in GET responses when `releases`
- included in `expand` parameter. Ignored if included in PUT or POST
- requests.
- webcapture_cdx_line:
- type: object
- required:
- - surt
- - timestamp
- - url
- - sha1
- properties:
- surt:
- type: string
- example: "org,asheesh)/apus/ch1/node15.html"
- description: |
- "Sortable URL" format. See guide for details.
- timestamp:
- type: string
- format: date-time
- example: "2016-09-19T17:20:24Z"
- description: |
- Date and time of capture, in ISO format. UTC, 'Z'-terminated, second
- (or better) precision.
- url:
- type: string
- # NOTE: not format:url to allow alternatives
- example: "http://www.asheesh.org:80/APUS/ch1/node15.html"
- description: |
- Full URL/URI of resource captured.
- mimetype:
- type: string
- example: "text/html"
- description: |
- Mimetype of the resource at this URL. May be the Content-Type header,
- or the actually sniffed file type.
- status_code:
- type: integer
- example: 200
- format: int64
- description: |
- HTTP status code. Should generally be 200, especially for the primary
- resource, but may be 3xx (redirect) or even error codes if embedded
- resources can not be fetched successfully.
- size:
- type: integer
- example: 1048576
- format: int64
- description: "Resource (file) size in bytes"
- sha1:
- <<: *FATCATSHA1
- <<: *FATCATSHA1EXAMPLE
- sha256:
- <<: *FATCATSHA256
- <<: *FATCATSHA256EXAMPLE
- webcapture_url:
- type: object
- required:
- - url
- - rel
- properties:
- url:
- type: string
- format: url
- example: "https://web.archive.org/web/"
- description: |
- URL/URI pointing to archive of this web resource.
- rel:
- type: string
- example: "wayback"
- description: |
- Type of archive endpoint. Usually `wayback` (WBM replay of primary
- resource), or `warc` (direct URL to a WARC file containing all
- resources of the capture). See guide for full list.
- release_entity:
- type: object
- # required for creation: title
- required:
- - ext_ids
- properties:
- <<: *ENTITYPROPS
- title:
- type: string
- description: |
- Required for valid entities. The title used in citations and for
- display. Sometimes the English translation of title e even if release
- content is not English.
- subtitle:
- type: string
- description: |
- Subtitle of release. In many cases, better to merge with title than
- include as separate field (unless combined title would be very long).
- See guide for details.
- original_title:
- type: string
- description: |
- Title in original language if `title` field has been translated. See
- guide for details.
- work_id:
- type: string
- example: "q3nouwy3nnbsvo3h5klxsx4a7y"
- description: |
- Identifier of work this release is part of. In creation (POST)
- requests, a work entity will be created automatically if this field
- is not set.
- container:
- $ref: "#/definitions/container_entity"
- description: |
- Complete container entity identified by `container_id` field. Only
- included in GET reponses when `container` included in `expand`
- parameter; ignored in PUT or POST requests.
- files:
- type: array
- items:
- $ref: "#/definitions/file_entity"
- description: |
- Complete file entities identified by `file_ids` field. Only
- included in GET responses when `files` included in `expand` parameter;
- ignored in PUT or POST requests.
- filesets:
- type: array
- items:
- $ref: "#/definitions/fileset_entity"
- description: |
- Complete file entities identified by `filesets_ids` field. Only
- included in GET responses when `filesets` included in `expand`
- parameter; ignored in PUT or POST requests.
- webcaptures:
- type: array
- items:
- $ref: "#/definitions/webcapture_entity"
- description: |
- Complete webcapture entities identified by `webcapture_ids` field.
- Only included in GET responses when `webcaptures` included in `expand`
- parameter; ignored in PUT or POST requests.
- container_id:
- type: string
- example: "q3nouwy3nnbsvo3h5klxsx4a7y"
- description: |
- Used to link this release to a container entity that the release was
- published as part of.
- release_type:
- type: string
- example: "book"
- description: |
- "Type" or "medium" that this release is published as. See guide for
- valid values.
- release_stage:
- type: string
- example: "preprint"
- description: |
- The stage of publication of this specific release. See guide for
- valid values and semantics.
- release_date:
- type: string
- format: date
- description: |
- Full date when this release was formally published. ISO format, like
- `2019-03-05`. See guide for semantics.
- release_year:
- type: integer
- example: 2014
- format: int64
- description: |
- Year when this release was formally published. Must match
- `release_date` if that field is set; this field exists because
- sometimes only the year is known.
- withdrawn_status:
- type: string
- example: "retracted"
- description: |
- Type of withdrawl or retraction of this release, if applicable. If
- release has not been withdrawn, should be `null` (aka, not set, not
- the string "null" or an empty string).
- withdrawn_date:
- type: string
- format: date
- description: |
- Full date when this release was formally withdrawn (if applicable).
- ISO format, like `release_date`.
- withdrawn_year:
- type: integer
- example: 2014
- format: int64
- description: |
- Year corresponding with `withdrawn_date` like
- `release_year`/`release_date`.
- ext_ids:
- $ref: "#/definitions/release_ext_ids"
- description: |
- Set of external identifiers for this release.
- volume:
- type: string
- example: "3"
- description: |
- Volume number of container that this release was published in. Often
- corresponds to the "Nth" year of publication, but can be any string.
- See guide.
- issue:
- type: string
- example: "12"
- description: |
- Issue number of volume/container that this release was published in.
- Sometimes coresponds to a month number in the year, but can be any
- string. See guide.
- pages:
- type: string
- example: "340-345"
- description: |
- Either a single page number ("first page") or a range of pages
- separated by a dash ("-"). See guide for details.
- number:
- type: string
- example: "RFC1337"
- description: |
- For, eg, technical reports, which are published in series or
- assigned some other institutional or container-specific identifier.
- version:
- type: string
- example: "3"
- description: |
- For, eg, updated technical reports or software packages, where
- the version string may be the only field disambiguating between
- releases.
- publisher:
- type: string
- example: "Elsevier"
- description: |
- Name, usually English, of the entity or institution responsible for
- publication of this release. Not necessarily the imprint/brand. See
- guide.
- language:
- type: string
- example: "en"
- description: |
- Primary language of the content of the full release. Two-letter
- RFC1766/ISO639-1 language code, with some custom
- extensions/additions. See guide.
- license_slug:
- type: string
- example: "CC-BY"
- description: |
- Short string (slug) name of license under which release is openly
- published (if applicable).
- contribs:
- type: array
- items:
- $ref: "#/definitions/release_contrib"
- refs:
- type: array
- items:
- $ref: "#/definitions/release_ref"
- abstracts:
- type: array
- items:
- $ref: "#/definitions/release_abstract"
- release_ext_ids:
- type: object
- properties:
- doi:
- type: string
- #format: custom
- example: "10.1234/abcde.789"
- description: |
- Digital Object Identifier (DOI), mostly for published papers and
- datasets. Should be registered and resolvable via https://doi.org/
- wikidata_qid:
- type: string
- example: "Q42812"
- description: "Wikidata entity QID"
- isbn13:
- type: string
- #format: custom
- description: |
- ISBN-13, for books. Usually not set for chapters. ISBN-10 should be
- converted to ISBN-13.
- pmid:
- type: string
- example: "482132"
- description: "PubMed Identifier"
- pmcid:
- example: "PMC7391"
- type: string
- description: "PubMed Central Identifier"
- core:
- exmaple: "9234592"
- type: string
- #format: custom
- description: "CORE (https://core.ac.uk) identifier"
- arxiv:
- type: string
- description: "arXiv (https://arxiv.org) identifier; must include version"
- jstor:
- type: string
- description: "JSTOR work identifier"
- ark:
- type: string
- description: "ARK identifier"
- mag:
- type: string
- description: "Microsoft Academic Graph identifier"
- release_abstract:
- type: object
- properties:
- sha1:
- <<: *FATCATSHA1
- <<: *FATCATSHA1EXAMPLE
- content:
- type: string
- example: "<jats:p>Some abstract thing goes here</jats:p>"
- description: |
- Abstract content. May be encoded, as per `mimetype` field, but only
- string/text content may be included.
- mimetype:
- type: string
- example: "application/xml+jats"
- description: |
- Mimetype of abstract contents. `text/plain` is the default if content
- isn't encoded.
- lang:
- type: string
- example: "en"
- description: |
- ISO language code of the abstract. Same semantics as release `language` field.
- work_entity:
- type: object
- properties:
- <<: *ENTITYPROPS
- entity_history_entry:
- type: object
- required:
- - edit
- - editgroup
- - changelog_entry
- properties:
- edit:
- $ref: "#/definitions/entity_edit"
- editgroup:
- $ref: "#/definitions/editgroup"
- changelog_entry:
- $ref: "#/definitions/changelog_entry"
- entity_edit:
- type: object
- required:
- - edit_id
- - ident
- - editgroup_id
- properties:
- edit_id:
- <<: *FATCATUUID
- <<: *FATCATUUIDEXAMPLE
- description: |
- Unique UUID for this specific edit object.
- ident:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Fatcat identifier of the entity this edit is mutating.
- revision:
- <<: *FATCATUUID
- <<: *FATCATUUIDEXAMPLE
- description: |
- Entity revision that this edit will set the entity to. May be
- `null` in the case of deletions.
- prev_revision:
- <<: *FATCATUUID
- <<: *FATCATUUIDEXAMPLE
- description: |
- Revision of entity just before this edit. May be used in the future
- to prevent edit race conditions.
- redirect_ident:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- When an edit is to merge entities (redirect one to another), this
- is the entity fatcat identifier for the target entity.
- editgroup_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Editgroup identifier that this edit is part of.
- extra:
- type: object
- additionalProperties: {}
- editor:
- type: object
- required:
- - username
- properties:
- editor_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Fatcat identifier for the editor. Can not be changed.
- username:
- type: string
- example: "zerocool93"
- description: |
- Username/handle (short slug-like string) to identify this editor. May
- be changed at any time by the editor; use the `editor_id` as a
- persistend identifer.
- is_admin:
- type: boolean
- example: false
- description: |
- Whether this editor has the `admin` role.
- is_bot:
- type: boolean
- example: false
- description: |
- Whether this editor is a bot (as opposed to a human making manual
- edits)
- is_active:
- type: boolean
- example: true
- description: |
- Whether this editor's account is enabled (if not API tokens and web
- logins will not work).
- editgroup:
- type: object
- properties:
- editgroup_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Fatcat identifier for this editgroup. Assigned on creation.
- editor_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Fatcat identifer of editor that created this editgroup.
- editor:
- $ref: "#/definitions/editor"
- description: |
- Complete editor object identified by `container_id` field. Only
- included in GET responses.
- changelog_index: # not returned in all contexts...
- type: integer
- example: 1048576
- format: int64
- description: |
- For accepted/merged editgroups, the changelog index that the accept
- occured at. WARNING: not populated in all contexts that an editgroup
- could be included in a response.
- created:
- type: string
- format: date-time
- description: |
- Timestamp when this editgroup was first created.
- submitted:
- type: string
- format: date-time
- description: |
- Timestamp when this editgroup was most recently submitted for review.
- If withdrawn, or never submitted, will be `null`.
- description:
- type: string
- description: |
- Comment describing the changes in this editgroup. Can be updated with
- PUT request.
- extra:
- type: object
- additionalProperties: {}
- description: |
- Free-form JSON metadata attached to this editgroup. Eg, metadata
- provenance, or script user-agent details. See guide for (unenforced)
- schema norms.
- annotations:
- type: array
- items:
- $ref: "#/definitions/editgroup_annotation"
- description: |
- Only included in GET responses, and not in all contexts. Do not
- include this field in PUT or POST requests.
- edits:
- type: object
- description: |
- Only included in GET responses, and not in all contexts. Do not
- include this field in PUT or POST requests.
- properties:
- containers:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- creators:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- files:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- filesets:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- webcaptures:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- releases:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- works:
- type: array
- items:
- $ref: "#/definitions/entity_edit"
- editgroup_annotation:
- type: object
- properties:
- annotation_id:
- <<: *FATCATUUID
- <<: *FATCATUUIDEXAMPLE
- editgroup_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Editgroup that this annotation applies to. Set automatically in
- creations based on URL parameter.
- editor_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Defaults to editor created the annotation via POST request.
- editor:
- $ref: "#/definitions/editor"
- description: |
- Only included in GET responses; ignored in PUT or POST requests.
- created:
- type: string
- format: date-time
- description: |
- Timestamp when annotation was first created.
- comment_markdown:
- type: string
- extra:
- type: object
- additionalProperties: {}
- description: |
- Additional free-form JSON metadata that can be included as part of
- the annotation (or even as the primary annotation itself). See guide
- for details.
- changelog_entry:
- type: object
- required:
- - index
- - editgroup_id
- - timestamp
- properties:
- index:
- type: integer
- format: int64
- description: |
- Monotonically increasing sequence number of this changelog entry.
- editgroup_id:
- type: string
- example: "q3nouwy3nnbsvo3h5klxsx4a7y"
- description: |
- Identifier of editgroup accepted/merged in this changelog entry.
- timestamp:
- type: string
- format: date-time
- description: |
- Date and time when the editgroup was accpeted.
- editgroup:
- $ref: "#/definitions/editgroup"
- release_ref:
- type: object
- properties:
- index:
- type: integer
- format: int64
- description: |
- Zero-indexed sequence number of this reference in the list of
- references. Assigned automatically and used internally; don't confuse
- with `key`.
- target_release_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- Optional, fatcat identifier of release entity that this reference is
- citing.
- extra:
- type: object
- additionalProperties: {}
- description: |
- Additional free-form JSON metadata about this citation. Generally
- follows Citation Style Language (CSL) JSON schema. See guide for
- details.
- key:
- type: string
- example: "SMITH2016"
- description: |
- Short string used to indicate this reference from within the release
- text; or numbering of references as typeset in the release itself.
- Optional; don't confuse with `index` field.
- year:
- type: integer
- format: int64
- example: 1972
- description: |
- Year that the cited work was published in.
- container_name:
- type: string
- description: |
- Name of the container (eg, journal) that the citation work was
- published as part of. May be an acronym or full name.
- title:
- type: string
- description:
- Name of the work being cited.
- locator:
- type: string
- example: "p123"
- description: |
- Page number or other indicator of the specific subset of a work being
- cited. Not to be confused with the first page (or page range) of an
- entire paper or chapter being cited.
- release_contrib:
- type: object
- properties:
- index:
- type: integer
- format: int64
- example: 0
- description: |
- Internally assigned zero-indexed sequence number of contribution.
- Authors should come first; this encodes the order of attriubtion.
- creator_id:
- <<: *FATCATIDENT
- <<: *FATCATIDENTEXAMPLE
- description: |
- If known, indicates the creator entity this contribution was made by.
- creator:
- $ref: "#/definitions/creator_entity"
- description: |
- Complete creator entity. Only returned in GET responses, and only if
- `contribs` included in the `expand` query parameter.
- raw_name:
- type: string
- example: "Jane K. Doe"
- description: |
- Full name of the contributor as typeset in the release.
- given_name:
- type: string
- example: "Jane"
- description: |
- In English commonly the first name, but ordering is context and
- culture specific.
- surname:
- type: string
- example: "Doe"
- description: |
- In English commonly the last, or family name, but ordering is context
- and culture specific.
- role:
- type: string
- example: "author"
- description: |
- Short string (slug) indicating type of contribution (eg, "author",
- "translator"). See guide for list of accpeted values.
- raw_affiliation:
- type: string
- description: "Raw affiliation string as displayed in text"
- extra:
- type: object
- additionalProperties: {}
- description: |
- Additional free-form JSON metadata about this
- contributor/contribution. See guide for normative schema.
- container_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/container_entity"
- creator_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/creator_entity"
- file_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/file_entity"
- fileset_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/fileset_entity"
- webcapture_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/webcapture_entity"
- release_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/release_entity"
- work_auto_batch:
- type: object
- required:
- - editgroup
- - entity_list
- properties:
- editgroup:
- $ref: "#/definitions/editgroup"
- entity_list:
- type: array
- items:
- $ref: "#/definitions/work_entity"
- auth_oidc:
- type: object
- required:
- - provider
- - sub
- - iss
- - preferred_username
- properties:
- provider:
- type: string
- example: "orcid"
- description: |
- Fatcat-specific short name (slug) for remote service being used for
- authentication.
- sub:
- type: string
- description: "`SUB` from OIDC protocol. Usually a URL."
- example: "https://orcid.org"
- iss:
- type: string
- description: "`ISS` from OIDC protocol. Usually a stable account username, number, or identifier."
- example: "0000-0002-8593-9468"
- preferred_username:
- type: string
- description: |
- What it sounds like; returned by OIDC, and used as a hint when
- creating new editor accounts. Fatcat usernames are usually this
- string with the `provider` slug as a suffix, though some munging may
- occur.
- example: "bnewbold"
- auth_oidc_result:
- type: object
- required:
- - editor
- - token
- properties:
- editor:
- $ref: "#/definitions/editor"
- token:
- type: string
- example: "AgEPZGV2LmZhdGNhdC53aWtpAhYyMDE5MDEwMS1kZXYtZHVtbXkta2V5AAImZWRpdG9yX2lkID0gYWFhYWFhYWFhYWFhYmt2a2FhYWFhYWFhYWkAAht0aW1lID4gMjAxOS0wMS0wOVQwMDo1Nzo1MloAAAYgnroNha1hSftChtxHGTnLEmM/pY8MeQS/jBSV0UNvXug="
- auth_token_result:
- type: object
- required:
- - token
- properties:
- token:
- type: string
- example: "AgEPZGV2LmZhdGNhdC53aWtpAhYyMDE5MDEwMS1kZXYtZHVtbXkta2V5AAImZWRpdG9yX2lkID0gYWFhYWFhYWFhYWFhYmt2a2FhYWFhYWFhYWkAAht0aW1lID4gMjAxOS0wMS0wOVQwMDo1Nzo1MloAAAYgnroNha1hSftChtxHGTnLEmM/pY8MeQS/jBSV0UNvXug="
-
-x-auth-responses: &AUTHRESPONSES
- 401:
- description: Not Authorized # "Authentication information is missing or invalid"
- schema:
- $ref: "#/definitions/error_response"
- headers:
- WWW_Authenticate:
- type: string
- 403:
- description: Forbidden
- schema:
- $ref: "#/definitions/error_response"
-x-entity-responses: &ENTITYRESPONSES
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
-
-paths:
- /editgroup/{editgroup_id}/container:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_container"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Create a single Container entity as part of an existing editgroup.
-
- Editgroup must be mutable (aka, not accepted) and editor must have
- permission (aka, have created the editgrou p or have `admin` role).
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/container_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/container/batch:
- post:
- operationId: "create_container_auto_batch"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Create a set of Container entities as part of a new editgroup, and
- accept that editgroup in the same atomic request.
-
- This method is mostly useful for bulk import of new entities by
- carefully written bots. This method is more efficient than creating an
- editgroup, several entities, then accepting the editgroup, both in
- terms of API requests required and database load. Requires `admin`
- role.
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/container_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /container/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_container"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Fetches a single container entity from the catalog.
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For containers, none accepted (yet)."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. For containers, none accepted (yet)."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/container_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/container/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_container"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Updates an existing entity as part of a specific (existing) editgroup.
- The editgroup must be open for updates (aka, not accepted/merged), and
- the editor making the requiest must have permissions (aka, must have
- created the editgroup or have `admin` role).
-
- This method can also be used to update an existing entity edit as part
- of an editgroup. For example, if an entity was created in this
- editgroup, an editor could make changes to the new entity's metadata
- before merging.
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/container_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_container"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Creates a new "deletion" edit for a specific entity as part of an
- existing editgroup.
-
- This is not the method to use to remove an edit from an editgroup; for
- that use `delete_container_edit`.
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /container/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_container_revision"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Fetches a specific entity revision. Note that the returned revision
- will not be associated with any particular fatcat identifier (even if
- one or more identifiers do currently point to this revision). The
- revision may even be part of an un-merged editgroup.
-
- Revisions are immutable and can not be deleted or updated.
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_container`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_container`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/container_entity"
- <<: *ENTITYRESPONSES
- /container/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- description: "Maximum number of changelog entries to return"
- get:
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Fetches the history of accepted edits (changelog entries) for a
- specific entity fatcat identifier.
- operationId: "get_container_history"
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /container/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_container_redirects"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Returns the set of entity identifiers which currently redirect to this
- identifier.
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /container/lookup:
- get:
- operationId: "lookup_container"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Looks for an active entity with the given external identifier. If any
- such entity is found, returns a single complete entity. If multiple
- entities have the same external identifier, this is considered a soft
- catalog error, and the behavior of which entity is returned is
- undefined.
-
- One (and only one) external identifier should be specified per request.
- parameters:
- - name: issnl
- in: query
- required: false
- <<: *FATCATISSN
- - name: wikidata_qid
- in: query
- type: string
- required: false
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_container`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_container`."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/container_entity"
- <<: *ENTITYRESPONSES
- /container/edit/{edit_id}:
- get:
- operationId: "get_container_edit"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Returns the entity edit object with the given identifier. This method
- is expected to be used rarely.
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/container/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_container_edit"
- tags: # TAGLINE
- - containers # TAGLINE
- description: |
- Removes a single edit from the specified editgroup. The editgroup must
- be mutable (aka, not accepted/merged), and the editor making this
- request must have permission (aka, have created the editgroup or hold
- the `admin` role).
-
- Not to be confused with the `delete_container` method, which *creates*
- a new edit in the given editgroup.
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editgroup/{editgroup_id}/creator:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_creator"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/creator_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/creator/batch:
- post:
- operationId: "create_creator_auto_batch"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/creator_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /creator/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_creator"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For creators, none accepted (yet)."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. For creators, none accepted (yet)."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/creator_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/creator/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_creator"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/creator_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_creator"
- tags: # TAGLINE
- - creators # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /creator/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_creator_revision"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: |
- List of sub-entities to expand in response. See `get_creator`,
- though note that identifier-based expansions (like `releases`) will
- always be empty for revisions.
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_creator`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/creator_entity"
- <<: *ENTITYRESPONSES
- /creator/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- get:
- operationId: "get_creator_history"
- tags: # TAGLINE
- - creators # TAGLINE
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /creator/{ident}/releases:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_release`."
- get:
- operationId: "get_creator_releases"
- tags: # TAGLINE
- - creators # TAGLINE
- description: |
- Returns the set of Release entities having a `contrib` entry pointing
- to the creator entity.
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/release_entity"
- <<: *ENTITYRESPONSES
- /creator/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_creator_redirects"
- tags: # TAGLINE
- - creators # TAGLINE
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /creator/lookup:
- get:
- operationId: "lookup_creator"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: orcid
- in: query
- required: false
- <<: *FATCATORCID
- - name: wikidata_qid
- in: query
- type: string
- required: false
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_creator`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_creator`."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/creator_entity"
- <<: *ENTITYRESPONSES
- /creator/edit/{edit_id}:
- get:
- operationId: "get_creator_edit"
- tags: # TAGLINE
- - creators # TAGLINE
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/creator/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_creator_edit"
- tags: # TAGLINE
- - creators # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editgroup/{editgroup_id}/file:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_file"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/file_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/file/batch:
- post:
- operationId: "create_file_auto_batch"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/file_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /file/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_file"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For files, `releases` is accepted."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. For files, none accepted (yet)."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/file_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/file/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_file"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/file_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_file"
- tags: # TAGLINE
- - files # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /file/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_file_revision"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_file`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_file`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/file_entity"
- <<: *ENTITYRESPONSES
- /file/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- get:
- operationId: "get_file_history"
- tags: # TAGLINE
- - files # TAGLINE
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /file/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_file_redirects"
- tags: # TAGLINE
- - files # TAGLINE
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /file/lookup:
- get:
- operationId: "lookup_file"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: md5
- in: query
- required: false
- <<: *FATCATMD5
- - name: sha1
- in: query
- required: false
- <<: *FATCATSHA1
- - name: sha256
- in: query
- required: false
- <<: *FATCATSHA256
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_file`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_file`."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/file_entity"
- <<: *ENTITYRESPONSES
- /file/edit/{edit_id}:
- get:
- operationId: "get_file_edit"
- tags: # TAGLINE
- - files # TAGLINE
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/file/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_file_edit"
- tags: # TAGLINE
- - files # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editgroup/{editgroup_id}/fileset:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_fileset"
- tags: # TAGLINE
- - filesets # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/fileset_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/fileset/batch:
- post:
- operationId: "create_fileset_auto_batch"
- tags: # TAGLINE
- - filesets # TAGLINE
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/fileset_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /fileset/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_fileset"
- tags: # TAGLINE
- - filesets # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For filesets, `releases` is accepted."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. For filesets, 'manifest' is accepted."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/fileset_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/fileset/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_fileset"
- tags: # TAGLINE
- - filesets # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/fileset_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_fileset"
- tags: # TAGLINE
- - filesets # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /fileset/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_fileset_revision"
- tags: # TAGLINE
- - filesets # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_fileset`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_fileset`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/fileset_entity"
- <<: *ENTITYRESPONSES
- /fileset/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- get:
- operationId: "get_fileset_history"
- tags: # TAGLINE
- - filesets # TAGLINE
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /fileset/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_fileset_redirects"
- tags: # TAGLINE
- - filesets # TAGLINE
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /fileset/edit/{edit_id}:
- get:
- operationId: "get_fileset_edit"
- tags: # TAGLINE
- - filesets # TAGLINE
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/fileset/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_fileset_edit"
- tags: # TAGLINE
- - filesets # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editgroup/{editgroup_id}/webcapture:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_webcapture"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/webcapture_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/webcapture/batch:
- post:
- operationId: "create_webcapture_auto_batch"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/webcapture_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /webcapture/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_webcapture"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For webcaptures, `releases` is accepted."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. For webcaptures, 'cdx' is accepted."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/webcapture_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/webcapture/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_webcapture"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/webcapture_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_webcapture"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /webcapture/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_webcapture_revision"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_webcapture`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_webcapture`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/webcapture_entity"
- <<: *ENTITYRESPONSES
- /webcapture/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- get:
- operationId: "get_webcapture_history"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /webcapture/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_webcapture_redirects"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /webcapture/edit/{edit_id}:
- get:
- operationId: "get_webcapture_edit"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/webcapture/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_webcapture_edit"
- tags: # TAGLINE
- - webcaptures # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editgroup/{editgroup_id}/release:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_release"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Create a single Release entity as part of an existing editgroup. If the
- `work_id` field is not set, a work entity will be created automatically
- and this field set pointing to the new work.
-
- Editgroup must be mutable (aka, not accepted) and editor must have
- permission (aka, have created the editgrou p or have `admin` role).
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/release_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/release/batch:
- post:
- operationId: "create_release_auto_batch"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Create a set of Release entities as part of a new editgroup, and
- accept that editgroup in the same atomic request.
-
- This method is mostly useful for bulk import of new entities by
- carefully written bots. This method is more efficient than creating an
- editgroup, several entities, then accepting the editgroup, both in
- terms of API requests required and database load. Requires `admin`
- role.
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/release_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /release/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_release"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Fetches a single Release entity from the catalog.
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: |
- List of sub-entities to expand in response. For releases, 'files',
- 'filesets, 'webcaptures', 'container', and 'creators' are valid.
- - name: hide
- in: query
- type: string
- required: false
- description: |
- List of entity fields to elide in response (for efficiency). For
- releases, 'abstracts', 'refs', and 'contribs' are valid.
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/release_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/release/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_release"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Updates an existing entity as part of a specific (existing) editgroup.
- The editgroup must be open for updates (aka, not accepted/merged), and
- the editor making the requiest must have permissions (aka, must have
- created the editgroup or have `admin` role).
-
- This method can also be used to update an existing entity edit as part
- of an editgroup. For example, if an entity was created in this
- editgroup, an editor could make changes to the new entity's metadata
- before merging.
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/release_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_release"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Creates a new "deletion" edit for a specific entity as part of an
- existing editgroup.
-
- This is not the method to use to remove an edit from an editgroup; for
- that use `delete_release_edit`.
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /release/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_release_revision"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Fetches a specific entity revision. Note that the returned revision
- will not be associated with any particular fatcat identifier (even if
- one or more identifiers do currently point to this revision). The
- revision may even be part of an un-merged editgroup.
-
- Revisions are immutable and can not be deleted or updated.
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description:
- List of sub-entities to expand in response. See `get_release`,
- though note that identifier-based exapansions like `file` will
- always be empty for revisions.
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_release`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/release_entity"
- <<: *ENTITYRESPONSES
- /release/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- get:
- operationId: "get_release_history"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Fetches the history of accepted edits (changelog entries) for a
- specific entity fatcat identifier.
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /release/{ident}/files:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_file`."
- get:
- operationId: "get_release_files"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Returns the set of File entities that have a `release_id` pointing to
- this release entity.
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/file_entity"
- <<: *ENTITYRESPONSES
- /release/{ident}/filesets:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_fileset`."
- get:
- operationId: "get_release_filesets"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Returns the set of Fileset entities that have a `release_id` pointing to
- this release entity.
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/fileset_entity"
- <<: *ENTITYRESPONSES
- /release/{ident}/webcaptures:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_webcapture`."
- get:
- operationId: "get_release_webcaptures"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Returns the set of Web Capture entities that have a `release_id`
- pointing to this release entity.
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/webcapture_entity"
- <<: *ENTITYRESPONSES
- /release/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_release_redirects"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Returns the set of entity identifiers which currently redirect to this
- identifier.
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /release/lookup:
- get:
- operationId: "lookup_release"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Looks for an active entity with the given external identifier. If any
- such entity is found, returns a single complete entity. If multiple
- entities have the same external identifier, this is considered a soft
- catalog error, and the behavior of which entity is returned is
- undefined.
-
- One (and only one) external identifier should be specified per request.
- parameters:
- # TODO: use identifier types here
- - name: doi
- in: query
- type: string
- required: false
- - name: wikidata_qid
- in: query
- type: string
- required: false
- - name: isbn13
- in: query
- type: string
- required: false
- - name: pmid
- in: query
- type: string
- required: false
- - name: pmcid
- in: query
- type: string
- required: false
- - name: core
- in: query
- type: string
- required: false
- - name: arxiv
- in: query
- type: string
- required: false
- - name: jstor
- in: query
- type: string
- required: false
- - name: ark
- in: query
- type: string
- required: false
- - name: mag
- in: query
- type: string
- required: false
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. See `get_release`."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of sub-entities to elide in response. See `get_release`."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/release_entity"
- <<: *ENTITYRESPONSES
- /release/edit/{edit_id}:
- get:
- operationId: "get_release_edit"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Returns the entity edit object with the given identifier. This method
- is expected to be used rarely.
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/release/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_release_edit"
- tags: # TAGLINE
- - releases # TAGLINE
- description: |
- Removes a single edit from the specified editgroup. The editgroup must
- be mutable (aka, not accepted/merged), and the editor making this
- request must have permission (aka, have created the editgroup or hold
- the `admin` role).
-
- Not to be confused with the `delete_container` method, which *creates*
- a new edit in the given editgroup.
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editgroup/{editgroup_id}/work:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_work"
- tags: # TAGLINE
- - works # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/work_entity"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /editgroup/auto/work/batch:
- post:
- operationId: "create_work_auto_batch"
- tags: # TAGLINE
- - works # TAGLINE
- parameters:
- - name: auto_batch
- in: body
- required: true
- schema:
- $ref: "#/definitions/work_auto_batch"
- security:
- - Bearer: []
- responses:
- 201:
- description: Created Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /work/{ident}:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_work"
- tags: # TAGLINE
- - works # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For works, none accepted (yet)."
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. For works, none accepted (yet)."
- responses:
- 200:
- description: Found Entity
- schema:
- $ref: "#/definitions/work_entity"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/work/{ident}:
- parameters:
- - name: editgroup_id
- in: path
- type: string
- required: true
- - name: ident
- in: path
- type: string
- required: true
- put:
- operationId: "update_work"
- tags: # TAGLINE
- - works # TAGLINE
- parameters:
- - name: entity
- in: body
- required: true
- schema:
- $ref: "#/definitions/work_entity"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- delete:
- operationId: "delete_work"
- tags: # TAGLINE
- - works # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Entity
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
- /work/rev/{rev_id}:
- parameters:
- - name: rev_id
- in: path
- required: true
- <<: *FATCATUUID
- get:
- operationId: "get_work_revision"
- tags: # TAGLINE
- - works # TAGLINE
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description:
- List of sub-entities to expand in response. See `get_work`, though
- note that identifier-based expansions like `releases` will always
- be empty for revisions.
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_work`."
- responses:
- 200:
- description: Found Entity Revision
- schema:
- $ref: "#/definitions/work_entity"
- <<: *ENTITYRESPONSES
- /work/{ident}/history:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- get:
- operationId: "get_work_history"
- tags: # TAGLINE
- - works # TAGLINE
- responses:
- 200:
- description: Found Entity History
- schema:
- type: array
- items:
- $ref: "#/definitions/entity_history_entry"
- <<: *ENTITYRESPONSES
- /work/{ident}/redirects:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- get:
- operationId: "get_work_redirects"
- tags: # TAGLINE
- - works # TAGLINE
- responses:
- 200:
- description: Found Entity Redirects
- schema:
- type: array
- items:
- <<: *FATCATIDENT
- <<: *ENTITYRESPONSES
- /work/{ident}/releases:
- parameters:
- - name: ident
- in: path
- type: string
- required: true
- - name: hide
- in: query
- type: string
- required: false
- description: "List of entity fields to elide in response. See `get_release`."
- get:
- operationId: "get_work_releases"
- tags: # TAGLINE
- - works # TAGLINE
- description: |
- Returns the set of release entities that are part of this work (aka,
- have `work_id` pointing to this work entity).
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/release_entity"
- <<: *ENTITYRESPONSES
- /work/edit/{edit_id}:
- get:
- operationId: "get_work_edit"
- tags: # TAGLINE
- - works # TAGLINE
- parameters:
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- responses:
- 200:
- description: Found Edit
- schema:
- $ref: "#/definitions/entity_edit"
- <<: *ENTITYRESPONSES
- /editgroup/{editgroup_id}/work/edit/{edit_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- type: string
- - name: edit_id
- in: path
- required: true
- <<: *FATCATUUID
- delete:
- operationId: "delete_work_edit"
- tags: # TAGLINE
- - works # TAGLINE
- security:
- - Bearer: []
- responses:
- 200:
- description: Deleted Edit
- schema:
- $ref: "#/definitions/success"
- <<: *ENTITYRESPONSES
- <<: *AUTHRESPONSES
-
- /editor/{editor_id}:
- parameters:
- - name: editor_id
- in: path
- type: string
- required: true
- get:
- operationId: "get_editor"
- tags: # TAGLINE
- - editors # TAGLINE
- description: |
- Returns an editor object, including metadata such as the username,
- type, and role of editor.
- responses:
- 200:
- description: Found
- schema:
- $ref: "#/definitions/editor"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- put:
- operationId: "update_editor"
- tags: # TAGLINE
- - editors # TAGLINE
- description: |
- Allows metadata changes to some editor fields, such as the username.
-
- Changes require authentication and permissions. An editor can change
- their own username; changes to role flags require the `admin` role by
- the editor making the request.
- parameters:
- - name: editor
- in: body
- required: true
- schema:
- $ref: "#/definitions/editor"
- security:
- - Bearer: []
- responses:
- 200:
- description: Updated Editor
- schema:
- $ref: "#/definitions/editor"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /editor/{editor_id}/editgroups:
- parameters:
- - name: editor_id
- in: path
- type: string
- required: true
- get:
- operationId: "get_editor_editgroups"
- tags: # TAGLINE
- - editors # TAGLINE
- description: |
- Returns a set of editgroups created by the given editor, regardless of
- the status (accepted/submitted) of the editgroups.
- parameters:
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- - name: before
- in: query
- type: string
- format: date-time
- required: false
- description: |
- Return only editgroups created *before* the given timestamp (not
- inclusive). Editgroups will be sorted by creation time in
- descending order (most recent first). For use in pagination.
- - name: since
- in: query
- type: string
- format: date-time
- required: false
- description: |
- Return only editgroups created *after* the given timestamp (not
- inclusive). Editgroups will be sorted by creation time in ascending
- order (most recent last). For use in pagination.
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/editgroup"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- /editor/{editor_id}/annotations:
- parameters:
- - name: editor_id
- in: path
- required: true
- <<: *FATCATIDENT
- get:
- operationId: "get_editor_annotations"
- tags: # TAGLINE
- - editors # TAGLINE
- description: |
- Fetches a list of annotations made by a particular editor.
- parameters:
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- description: "Maximum number (count) of annotations to return in response"
- - name: before
- in: query
- type: string
- format: date-time
- required: false
- description: |
- Return only annotations made *before* the given timestamp (not
- inclusive). Annotations will be sorted by creation time in
- descending order (most recent first). For use in pagination.
- - name: since
- in: query
- type: string
- format: date-time
- required: false
- description: |
- Return only annotations made *after* the given timestamp (not
- inclusive). Annotations will be sorted by creation time in
- ascending order (most recent last). For use in pagination.
- responses:
- 200:
- description: Success
- schema:
- type: array
- items:
- $ref: "#/definitions/editgroup_annotation"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
-
- /editgroup:
- post:
- operationId: "create_editgroup"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description: |
- Creates a new editgroup. By default the editor making this request will
- be the author of the editgroup.
- parameters:
- - name: editgroup
- in: body
- required: true
- schema:
- $ref: "#/definitions/editgroup"
- security:
- - Bearer: []
- responses:
- 201:
- description: Successfully Created
- schema:
- $ref: "#/definitions/editgroup"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404: # added only for response type consistency
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /editgroup/{editgroup_id}:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- <<: *FATCATIDENT
- get:
- operationId: "get_editgroup"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description: |
- Returns a single editgroup object.
-
- Unlike some similar methods, this method will return a full/expanded
- editgroup object, which includes edit lists of each entity type (though
- will not include the complete entity objects).
- responses:
- 200:
- description: Found
- schema:
- $ref: "#/definitions/editgroup"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- put:
- operationId: "update_editgroup"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description: |
- Updates metadata for a single editgroup object. Note that only metadata
- fields such as the `description` or `extra` metadata can be changed
- with this method; it does not allow adding or removing edits to the
- editgroup (for that use the individual entity create/update/delete
- methods).
- security:
- - Bearer: []
- parameters:
- - name: editgroup
- in: body
- required: true
- schema:
- $ref: "#/definitions/editgroup"
- - name: submit
- in: query
- type: boolean
- required: false
- responses:
- 200:
- description: Updated Editgroup
- schema:
- $ref: "#/definitions/editgroup"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /editgroup/{editgroup_id}/accept:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- <<: *FATCATIDENT
- post:
- operationId: "accept_editgroup"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description: |
- Accept ("merge") the given editgroup into the catalog. The editgroup
- must be open (not already accepted), and the editor making this request
- must have the `admin` role.
- security:
- - Bearer: []
- responses:
- 200:
- description: Merged Successfully
- schema:
- $ref: "#/definitions/success"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 409:
- description: Edit Conflict
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /editgroup/{editgroup_id}/annotations:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- <<: *FATCATIDENT
- get:
- operationId: "get_editgroup_annotations"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description:
- Returns a list of annotations made to a specific editgroup.
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For editgroup annotations: 'editors'"
- responses:
- 200:
- description: Success
- schema:
- type: array
- items:
- $ref: "#/definitions/editgroup_annotation"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /editgroup/{editgroup_id}/annotation:
- parameters:
- - name: editgroup_id
- in: path
- required: true
- <<: *FATCATIDENT
- post:
- operationId: "create_editgroup_annotation"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description: |
- Submits a new annotation to the specified editgroup.
-
- The editgroup must be open (not already accepted). The annotation will
- automatically have authorship of the editor making this request.
- security:
- - Bearer: []
- parameters:
- - name: annotation
- in: body
- required: true
- schema:
- $ref: "#/definitions/editgroup_annotation"
- responses:
- 201:
- description: Created
- schema:
- $ref: "#/definitions/editgroup_annotation"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /editgroup/reviewable:
- get:
- operationId: "get_editgroups_reviewable"
- tags: # TAGLINE
- - editgroups # TAGLINE
- description: |
- Returns a set of editgroups which have been submitted but not yet accepted.
-
- Query parameters can be used to sort and paginate the list returned.
- parameters:
- - name: expand
- in: query
- type: string
- required: false
- description: "List of sub-entities to expand in response. For editgroups: 'editors'"
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- description: "Maximum number of reviewable editgroups to return in response"
- - name: before
- in: query
- type: string
- format: date-time
- required: false
- description: |
- Return only reviewable editgroups submitted *before* the given
- timestamp (not inclusive). Editgroups will be sorted by submission
- time in descending order (most recent first). For use in pagination.
- - name: since
- in: query
- type: string
- format: date-time
- required: false
- description: |
- Return only reviewable editgroups submitted *after* the given
- timestamp (not inclusive). Editgroups will be sorted by submission
- time in ascending order (most recent last). For use in pagination.
- responses:
- 200:
- description: Found
- schema:
- type: array
- items:
- $ref: "#/definitions/editgroup"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- /changelog:
- parameters:
- - name: limit
- in: query
- type: integer
- format: int64
- required: false
- description: "Maximum count of changelog entries to return in response"
- get:
- operationId: "get_changelog"
- tags: # TAGLINE
- - changelog # TAGLINE
- description: |
- Returns a list of the most recent changelog entries accepted (merged)
- into the catalog.
-
- List is sorted by changelog index in descending order. Note that the
- accepted timestamp roughly corresponds to order, but not strictly;
- there exist out-of-order timestamps on the order of several seconds.
-
- As a known database issue, it is technically possible for there to be a
- gap in changelog index numbers (aka, a missing changelog entry). There
- are no currently known gaps and this is considered a bug that will be
- addressed.
-
- There are millions of entries; to paginate through all of them, use
- this method to discover the highest existing entry number, then request
- the entries using `get_changelog_entry` one at a time.
- responses:
- 200:
- description: Success
- schema:
- type: array
- items:
- $ref: "#/definitions/changelog_entry"
- 400: # added only for response type consistency
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- /changelog/{index}:
- parameters:
- - name: index
- in: path
- type: integer
- format: int64
- required: true
- description: "Changelog index of entry to return"
- get:
- operationId: "get_changelog_entry"
- tags: # TAGLINE
- - changelog # TAGLINE
- description: |
- Returns a single changelog entry.
-
- As a known database issue, it is technically possible for there to be a
- gap in changelog index numbers (aka, a missing changelog entry). There
- are no currently known gaps and this is considered a bug that will be
- addressed.
- responses:
- 200:
- description: Found Changelog Entry
- schema:
- $ref: "#/definitions/changelog_entry"
- 400: # added only for response type consistency
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 404:
- description: Not Found
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- /auth/oidc:
- post:
- operationId: "auth_oidc"
- tags: # TAGLINE
- - auth # TAGLINE
- description: |
- Login or create editor account using OIDC metadata (internal method).
-
- This method is used by privileged front-end tools (like the web
- interface service) to process editor logins using OpenID Connect (OIDC)
- and/or OAuth. Most accounts (including tool and bot accounts) do not
- have sufficient privileges to call this method, which requires the
- `admin` role.
-
- The method returns an API token; the HTTP status code indicates whether
- an existing account was logged in, or a new account was created.
- security:
- # required admin privs
- - Bearer: []
- parameters:
- - name: oidc_params
- in: body
- required: true
- schema:
- $ref: "#/definitions/auth_oidc"
- responses:
- 200:
- description: Found
- schema:
- $ref: "#/definitions/auth_oidc_result"
- 201:
- description: Created
- schema:
- $ref: "#/definitions/auth_oidc_result"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 409:
- description: Conflict
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /auth/check:
- get:
- operationId: "auth_check"
- tags: # TAGLINE
- - auth # TAGLINE
- description: |
- Verify that authentication (API token) is working as expected. The
- optional `role` parameter can be used to verify that the current
- account (editor) has permissions for the given role.
- security:
- # required admin privs
- - Bearer: []
- parameters:
- - name: role
- in: query
- required: false
- type: string
- responses:
- 200:
- description: Success
- schema:
- $ref: "#/definitions/success"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES
- /auth/token/{editor_id}:
- parameters:
- - name: editor_id
- in: path
- type: string
- required: true
- post:
- operationId: "create_auth_token"
- tags: # TAGLINE
- - auth # TAGLINE
- description: |
- Generate a new auth token for a given editor (internal method).
-
- This method is used by the web interface to generate API tokens for
- users. It can not be called by editors (human or bot) to generate new
- tokens for themselves, at least at this time.
- security:
- # required admin privs
- - Bearer: []
- parameters:
- - name: duration_seconds
- in: query
- type: integer
- example: 86400
- required: false
- description: "How long API token should be valid for (in seconds)"
- responses:
- 200:
- description: Success
- schema:
- $ref: "#/definitions/auth_token_result"
- 400:
- description: Bad Request
- schema:
- $ref: "#/definitions/error_response"
- 500:
- description: Generic Error
- schema:
- $ref: "#/definitions/error_response"
- <<: *AUTHRESPONSES