{
    "swagger": "2.0",
    "info": {
        "version": "3.6",
        "title": "REST API - OJS",
        "description": "This document describes how to interact with the REST API of Open Research Europe, which is based on the [Open Journal Systems](https://pkp.sfu.ca/software/ojs) (OJS) software. It is a technical document intended for software developers who wish to build applications to interact with OJS.",
        "contact": {
            "name": "Open Research Europe",
            "url": "/https/ore.eu/developers"
        },
        "x-logo": {
            "url": "/https/ore.eu/plugins/themes/oreTheme/assets/imgs/ore-logo-2-short-text.svg",
            "altText": "PKP Developer Docs"
        }
    },
    "produces": [
        "application\/json"
    ],
    "x-tagGroups": [
        {
            "name": "Usage",
            "tags": [
                "What's New in 3.6",
                "Access",
                "Authentication",
                "Pagination",
                "Localization",
                "Links",
                "Using Temporary Files"
            ]
        },
        {
            "name": "Endpoints",
            "tags": [
                "Submissions",
                "Submissions \/ Decisions",
                "Submissions \/ Files",
                "Submissions \/ JATS",
                "Submissions \/ Participants",
                "Submissions \/ Publications",
                "Submissions \/ Publications \/ Contributors",
                "Submissions \/ Reviewer Suggestions",
                "Submissions \/ DashboardViews",
                "Submissions \/ Tasks",
                "Issues",
                "Users",
                "Contexts",
                "Site",
                "Sections",
                "Announcements",
                "DOIs",
                "DOIs \/ Submissions",
                "DOIs \/ Issues",
                "Email Templates",
                "Institutions",
                "Invitations",
                "Mailables",
                "Reviews",
                "RORs",
                "Stats \/ Contexts",
                "Stats \/ Editorial",
                "Stats \/ Issues",
                "Stats \/ Publications",
                "Stats \/ Users",
                "Stats \/ Sushi",
                "Vocabs",
                "Temporary Files",
                "Backend",
                "ORCID",
                "Emails",
                "Editorial Task Templates",
                "Categories",
                "Comments",
                "Comments \/ Reports",
                "Navigation Menus"
            ]
        }
    ],
    "tags": [
        {
            "name": "What's New in 3.6",
            "x-traitTag": true,
            "description": "<blockquote style=\"margin-bottom:2rem;padding:1rem;border:2px solid #0073A8;color: #002c40\">Read the <a href=\"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/release-notebooks\/en\/3.6-release-notebook\">3.6 Release Notebook<\/a> to learn about all the changes introduced in 3.6.<\/blockquote>\n\nThe following changes were made to the REST API.\n\n-  Changes to the new Publication version endpoint to add new version numbering and naming.\n\nThe following new endpoints have been added.\n\n- New endpoints for managing publication Versions."
        },
        {
            "name": "Access",
            "x-traitTag": true,
            "description": "Use the following to access the `\/submissions` endpoint when an application is hosted at `https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/`.\n\n```\nhttps:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/api\/v1\/submissions\n```\n\nA multi-journal OJS installation must access endpoints from each journal's URL.\n\n```\nhttps:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/journalpath\/api\/v1\/submissions\n```\n\nInstallations that do not use `mod_rewrite` must include `index.php`.\n\n```\nhttps:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/index.php\/journalpath\/api\/v1\/submissions\n```\n\nAdministrators can access _some_ endpoints, such as `\/contexts`, at a site-wide endpoint that spans all journals.\n\n```\nhttps:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/_\/api\/v1\/contexts\n```"
        },
        {
            "name": "Authentication",
            "x-traitTag": true,
            "description": "Only authenticated users can access the REST API endpoints. Authentication can be done with cookies or by using the API token.\n\n## Cookies\n\nCookie-based authentication can be used when you are making a request from the same domain name as the application. When a request is made from the user's browser, the browser will send the cookies to the server.\n\nA CSRF token must be sent with every `POST`, `PUT` or `DELETE` request when using cookie-based authentication. Read more about the [CSRF Token](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/ui-library\/dev\/#\/pages\/api#csrf-token).\n\n## API Token\n\n> The `apiToken` will not validate if the `api_secret_key` setting has not been set in the application's `config.inc.php` file.\n\nYour API token can be found by going to **User Profile > API Key** in the application. Add the API Token in an `Authorization` header with every request made to the API.\n\n```\nAuthorization: Bearer eyJ0e...6vJU\n```\n\n"
        },
        {
            "name": "Pagination",
            "x-traitTag": true,
            "description": "Most API endpoints follow the same convention to return subsequent pages of results. The following would return the second \"page\" of results, if each page contained 30 results.\n\n```\nhttps:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/api\/v1\/submissions?count=30offset=30\n```"
        },
        {
            "name": "Localization",
            "x-traitTag": true,
            "description": "The OJS software is multilingual. Multilingual fields will be provided as a JSON object with keys specifying the locale codes. The following response shows the `title` property of a publication in English and Canadian French.\n\n```\n{\n\t\"title\": {\n\t\t\"en_US\": \"Young people from an immigrant background and their choice of post-secondary orientation in Montreal\",\n\t\t\"fr_CA\": \"Jeunes issus de l\u2019immigration et choix d\u2019orientation au postsecondaire \u00e0 Montr\u00e9al\"\n\t},\n\t...\n}\n```\n\nThis is the same even when an installation only uses a single language.\n\n```\n{\n\t\"title\": {\n\t\t\"fr_CA\": \"Jeunes issus de l\u2019immigration et choix d\u2019orientation au postsecondaire \u00e0 Montr\u00e9al\"\n\t},\n\t...\n}\n```\n\nWhen sending `POST` or `PUT` requests, the REST API will expect the data it receives to be passed in the same format."
        },
        {
            "name": "Links",
            "x-traitTag": true,
            "description": "Some responses will include a `_href` property. The value of this property will be a URL to the full version of this object in the REST API.\n\n```\n{\n\t\"_href\": \"https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.com\/api\/v1\/submissions\/219\"\n\t...\n}\n```"
        },
        {
            "name": "Using Temporary Files",
            "x-traitTag": true,
            "description": "Files can be uploaded by sending a `POST` request to the `\/temporaryFiles` endpoint. It will return a file ID which can be used in subsequent requests. Let's look at an example.\n\nTo upload a logo for a context, upload the image by sending a `POST` request to `\/temporaryFiles`. A successful upload will generate the following response:\n\n```\n{\n\tid: 123\n}\n```\n\nTo save the logo to the context, send a `PUT` request to `\/contexts\/1`:\n\n```\n{\n\tpageHeaderLogoImage: {\n\t\ttemporaryFileId: 123,\n\t\taltText: \"Logo for the Journal of Public Knowledge\"\n\t}\n}\n```\n\nThe file will be moved from the temporary directory to its public location, overwriting any existing logo.\n\nTemporary files can only be managed by **the user who uploaded the file**. If a user passes a `temporaryFileId` for a file they did not upload themselves, they will receive an authorization error."
        },
        {
            "name": "Submissions"
        },
        {
            "name": "Submissions \/ Decisions",
            "description": "Use these endpoints to get or record editorial decisions on a submission. Editorial decisions include actions like accepting or declining a submission, sending a submission to the next stage, and requesting revisions. Editorial decisions can not be edited or deleted after they are recorded. Learn more about [Decisions](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/documentation\/en\/decisions)."
        },
        {
            "name": "Submissions \/ Files"
        },
        {
            "name": "Submissions \/ JATS",
            "description": "Endpoints for managing the JATS XML source file associated with a submission's current publication."
        },
        {
            "name": "Submissions \/ Participants"
        },
        {
            "name": "Submissions \/ Publications"
        },
        {
            "name": "Submissions \/ Publications \/ Contributors"
        },
        {
            "name": "Submissions \/ Reviewer Suggestions",
            "description": "Endpoints for managing reviewer suggestions made by an author when submitting their work. Suggestions can be reviewed and approved by editors and converted into reviewer assignments.\n\nThe `POST`, `PUT`, and `DELETE` endpoints in this group will only succeed while the submission is still incomplete (i.e. `submissionProgress` is a non-empty string). Once a submission is complete, suggestions become read-only."
        },
        {
            "name": "Submissions \/ DashboardViews"
        },
        {
            "name": "Submissions \/ Tasks",
            "description": "The endpoint to interact with tasks and discussions"
        },
        {
            "name": "Issues"
        },
        {
            "name": "Users",
            "description": "Only admins, journal editors, and subeditors can access these endpoints."
        },
        {
            "name": "Contexts",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "Site",
            "description": "Only admins can access these endpoints, which should be accessed using `_` instead of the journal path."
        },
        {
            "name": "Announcements",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "DOIs",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "DOIs \/ Submissions",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "DOIs \/ Issues",
            "description": "Only admins and journal managers can access these endpoints. These endpoints are only available when issues have been configured to receive DOIs in the DOI settings."
        },
        {
            "name": "Email Templates",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "Editorial Task Templates",
            "description": "Endpoints used to manage editorial task templates (discussions and tasks)."
        },
        {
            "name": "Institutions",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "Invitations",
            "description": "Endpoints used to create, send, and respond to email-based invitations. The invitation toolset is used to request an email address change, to provide one-click reviewer access (replacing the older access-keys mechanism), and to support the GDPR-compliant user account creation process. Some endpoints in this group are publicly accessible (using an invitation key) so that invitees can accept, refine, or decline an invitation without authenticating."
        },
        {
            "name": "Mailables",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "Reviews",
            "description": "Endpoints to retrieve review round history, confirm review assignments on behalf of a reviewer, export individual review responses as PDF or XML, and submit completed reviews to ORCID."
        },
        {
            "name": "RORs",
            "description": "Endpoints to query the local cache of records from the [Research Organization Registry (ROR)](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/). These records are used to identify institutions when adding author affiliations."
        },
        {
            "name": "Sections",
            "description": "Endpoints to retrieve sections (or series in OMP) configured in the current context. Most authenticated users can access these endpoints."
        },
        {
            "name": "Stats \/ Editorial",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "Stats \/ Contexts",
            "description": "Only admins and journal managers can access these endpoints. Some of these endpoints can return results in CSV format. Where possible, send an `Accept: text\/csv` header with the request to receive stats in CSV format."
        },
        {
            "name": "Stats \/ Issues",
            "description": "Only admins and journal managers can access these endpoints. Some of these endpoints can return results in CSV format. Where possible, send an `Accept: text\/csv` header with the request to receive stats in CSV format."
        },
        {
            "name": "Stats \/ Publications",
            "description": "Only admins and journal managers can access these endpoints. Some of these endpoints can return results in CSV format. Where possible, send an `Accept: text\/csv` header with the request to receive stats in CSV format."
        },
        {
            "name": "Stats \/ Users",
            "description": "Only admins and journal managers can access these endpoints."
        },
        {
            "name": "Stats \/ Sushi",
            "description": "COUNTER R5 reports can be harvested via the COUNTER_SUSHI API at the path \/stats\/sushi. The specification is documented at the link below.",
            "externalDocs": {
                "description": "COUNTER\/SUSHI 5.0 API",
                "url": "https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/app.swaggerhub.com\/apis\/COUNTER\/counter-sushi_5_0_api\/"
            }
        },
        {
            "name": "Vocabs",
            "description": "Handle controlled vocabularies like keywords and subjects. Only admins, journal managers, subeditors, assistants and authors can access these endpoints."
        },
        {
            "name": "Temporary Files",
            "description": "A special endpoint to be used for handling file uploads. See the [API Usage Guide](\/dev\/api) for more information."
        },
        {
            "name": "Backend",
            "description": "Private endpoints for OJS's UI. These endpoints will be less stable between versions. We discourage their use in third-party plugins or applications."
        },
        {
            "name": "ORCID",
            "description": "Endpoints for managing ORCID."
        },
        {
            "name": "Emails",
            "description": "Endpoints used to retrieve user emails."
        },
        {
            "name": "Categories",
            "description": "Endpoints used to manage Context categories."
        },
        {
            "name": "Comments",
            "description": "Endpoints used to manage public user comments."
        },
        {
            "name": "Comments \/ Reports",
            "description": "Endpoints used to manage comment reports."
        },
        {
            "name": "Navigation Menus",
            "description": "Endpoints to manage navigation menus and their items. Only admins and journal managers can access these endpoints."
        }
    ],
    "definitions": {
        "Affiliation": {
            "type": "object",
            "properties": {
                "authorId": {
                    "type": "integer",
                    "description": "The author with which this affiliation is associated.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of an affiliation in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                },
                "rorObject": {
                    "type": "object",
                    "description": "An object representing the ROR for this affiliation.",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Ror",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the ROR for this affiliation.",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Ror"
                    }
                }
            }
        },
        "Announcement": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "origin": "composed",
                    "description": "The URL to this announcement in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocId": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The journal, press or preprint server ID. Null for site-level announcements.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "assocType": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The assoc object. This should always be `ASSOC_TYPE_JOURNAL` (OJS), `ASSOC_TYPE_PRESS` (OMP) or `ASSOC_TYPE_SERVER` (OPS).",
                    "apiSummary": true
                },
                "dateExpire": {
                    "type": "string",
                    "origin": "primary",
                    "description": "(Optional) The date that this announcement expires, if one is set. This is typically used to express closing dates for calls for papers.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "datePosted": {
                    "type": "string",
                    "origin": "primary",
                    "description": "The date this announcement was posted.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "descriptionShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "readOnly": true,
                    "apiSummary": true
                },
                "image": {
                    "type": "object",
                    "origin": "setting",
                    "description": "The image to show with this announcement.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "dateUploaded": {
                            "type": "string"
                        },
                        "altText": {
                            "type": "string"
                        }
                    }
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "typeId": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "(Optional) One of the announcement type IDs.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "url": {
                    "type": "string",
                    "origin": "composed",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true,
                    "description": "The URL to the published announcement."
                }
            }
        },
        "Author": {
            "type": "object",
            "properties": {
                "affiliations": {
                    "type": "array",
                    "description": "The scholarly institution this contributor is employed by or affiliated with.",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/Affiliation"
                    }
                },
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "competingInterests": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contributorRoles": {
                    "type": "array",
                    "description": "The names of this contributor's roles in the publication, such as 'Author' or 'Translator', and the translations",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/ContributorRole"
                    },
                    "validation": [
                        "min:1",
                        "nullable"
                    ]
                },
                "contributorType": {
                    "type": "string",
                    "description": "The name of this contributor's type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "country": {
                    "type": "string",
                    "description": "The author's country in a two-letter code (ISO 3166-1). See [all codes](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements).",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "country",
                        "regex:\/^[A-Z]{2}$\/"
                    ]
                },
                "creditRoles": {
                    "type": "array",
                    "description": "CRediT Roles",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "role": {
                                "type": "string",
                                "validation": [
                                    "url"
                                ]
                            },
                            "degree": {
                                "type": "string"
                            }
                        }
                    },
                    "validation": [
                        "nullable"
                    ]
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost",
                        "nullable"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "type": "string",
                    "description": "The full name of the author. This will be the preferredPublicName or, if that is not available, a string containing the givenName and familyName, or organization name, or anonymous",
                    "apiSummary": true,
                    "readOnly": true
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "includeInBrowse": {
                    "type": "boolean",
                    "description": "Whether or not to include this contributor in author lists when the publication appears in search results, tables of content and catalog entries.",
                    "default": true,
                    "apiSummary": true
                },
                "orcid": {
                    "type": "string",
                    "description": "The ORCID of this contributor. See: https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/orcid.org\/",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "orcid"
                    ]
                },
                "orcidDisplayValue": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidVerificationRequested": {
                    "type": "boolean",
                    "apiSummary": false
                },
                "organizationName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "rorId": {
                    "type": "string",
                    "description": "The ROR ID for ORGANIZATION contributor type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The order in which this contributor should appear in a list of contributors.",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The primary locale of the submission this author is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "url": {
                    "type": "string",
                    "description": "An optional URL to this contributor's webpage.",
                    "validation": [
                        "url",
                        "nullable"
                    ]
                }
            }
        },
        "Context": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "abbreviation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "about": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "acronym": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "additionalHomeContent": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "agencies": {
                    "type": "string",
                    "description": "Enable agencies metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "announcementsIntroduction": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "authorGuidelines": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "authorInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "automaticDoiDeposit": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "beginSubmissionHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "citations": {
                    "type": "string",
                    "description": "Enable citations metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "default": "request",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "citationsMetadataLookup": {
                    "type": "boolean",
                    "description": "Enable metadata lookup by default for new submissions.",
                    "validation": [
                        "nullable"
                    ]
                },
                "clockssLicense": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "competingInterests": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contactAffiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contactEmail": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "contactName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "contactPhone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "contributorsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copySubmissionAckAddress": {
                    "type": "string",
                    "default": "",
                    "description": "A copy of the submission acknowledgement email will be sent to any of the email addresses entered here. Separate multiple email addresses with a comma. Example: one@example.com,two@example.com",
                    "validation": [
                        "nullable"
                    ]
                },
                "copySubmissionAckPrimaryContact": {
                    "type": "boolean",
                    "default": false,
                    "description": "A copy of the submission acknowledgement email will be sent to this context's primary contact when true.",
                    "validation": [
                        "nullable"
                    ]
                },
                "copyrightHolderOther": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copyrightHolderType": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "in:author,context,other"
                    ],
                    "enum": [
                        "author",
                        "context",
                        "other"
                    ]
                },
                "copyrightNotice": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copyrightYearBasis": {
                    "type": "string",
                    "default": "issue",
                    "validation": [
                        "in:issue,submission"
                    ],
                    "enum": [
                        "issue",
                        "submission"
                    ]
                },
                "country": {
                    "type": "string",
                    "validation": [
                        "country"
                    ]
                },
                "coverage": {
                    "type": "string",
                    "description": "Enable coverage metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "currency": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "currency"
                    ]
                },
                "currentIssueId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "customHeaders": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dataAvailability": {
                    "type": "string",
                    "description": "Whether to not request, request or require a Data Availability Statement from the authors.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "dataCitations": {
                    "type": "string",
                    "description": "Enable data citations metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "dateFormatLong": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dateFormatShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "datetimeFormatLong": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "datetimeFormatShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "defaultMetricType": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "defaultReviewMode": {
                    "type": "integer",
                    "default": 2,
                    "validation": [
                        "nullable",
                        "in:1,2,3"
                    ],
                    "enum": [
                        1,
                        2,
                        3
                    ]
                },
                "defaultReviewPublicVisibility": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "delayedOpenAccessDuration": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "delayedOpenAccessPolicy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "detailsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "disableBulkEmailUserGroups": {
                    "type": "array",
                    "description": "User groups that a manager will be prevented from sending bulk email to using the notify feature. Only the admin may edit this property.",
                    "items": {
                        "type": "integer"
                    }
                },
                "disableSubmissions": {
                    "type": "boolean",
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "disableUserReg": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "disciplines": {
                    "type": "string",
                    "description": "Enable disciplines metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "doiCreationTime": {
                    "type": "string",
                    "default": "copyEditCreationTime"
                },
                "doiIssueSuffixPattern": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "doiPrefix": {
                    "type": "string",
                    "validation": [
                        "regex:\/^10\\.[0-9]{4,7}$\/",
                        "nullable"
                    ]
                },
                "doiPublicationSuffixPattern": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "doiRepresentationSuffixPattern": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "doiSuffixType": {
                    "type": "string",
                    "default": "default"
                },
                "doiVersioning": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether each publication version should receive a unique DOI"
                },
                "editorialHistory": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "editorialStatsEmail": {
                    "type": "boolean",
                    "description": "Whether or not to send the monthly editorial statistics email to editors. Default: `true`",
                    "default": true
                },
                "emailSignature": {
                    "type": "string",
                    "defaultLocaleKey": "default.contextSettings.emailSignature",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableAnnouncements": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableArticleNumber": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableClockss": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableDois": {
                    "type": "boolean",
                    "default": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "enableEnrollmentMasthead": {
                    "type": "boolean",
                    "default": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "enableEnrollmentMastheadReviewers": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableGeoUsageStats": {
                    "type": "string",
                    "description": "Whether to track usage statistics by location, and whether to track at the country, region or city level.",
                    "default": "disabled",
                    "validation": [
                        "in:disabled,country,country+region,country+region+city"
                    ],
                    "enum": [
                        "disabled",
                        "country",
                        "country+region",
                        "country+region+city"
                    ]
                },
                "enableInstitutionUsageStats": {
                    "type": "boolean",
                    "description": "Whether to track usage statistics by institutions. Requires institutional IP ranges to be configured.",
                    "default": false
                },
                "enableLockss": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableOai": {
                    "type": "boolean",
                    "default": 1,
                    "validation": [
                        "nullable"
                    ]
                },
                "enableOpenAccessNotification": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enablePublicComments": {
                    "type": "boolean",
                    "description": "Whether or not the public commenting feature should be enabled.",
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "enablePublisherId": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "in:publication,galley,issue,issueGalley"
                        ]
                    }
                },
                "enableSubscriptionOnlinePaymentNotificationPurchaseIndividual": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableSubscriptionOnlinePaymentNotificationRenewIndividual": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableSubscriptionOnlinePaymentNotificationRenewInstitutional": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enabled": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "enabledDoiTypes": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "in:publication,representation,issue,peerReview,authorResponse"
                        ]
                    },
                    "default": [
                        "publication"
                    ]
                },
                "envelopeSender": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "favicon": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "forTheEditorsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "funderGrantValidation": {
                    "type": "boolean",
                    "description": "Enable funder grant validation.",
                    "validation": [
                        "nullable"
                    ]
                },
                "funders": {
                    "type": "string",
                    "description": "Enable funding metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a funders during submission. `require` will require that the author enter funders during submission.",
                    "default": "request",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "fundingStatement": {
                    "type": "string",
                    "description": "Whether to not request, request or require a Funding Statement from the authors.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "homepageImage": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isSushiApiPublic": {
                    "type": "boolean",
                    "description": "Whether or not the access to the COUNTER SUSHI statistics API is public. If false, only users with admin or manager roles can access the API.",
                    "default": true
                },
                "itemsPerPage": {
                    "type": "integer",
                    "default": 25,
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "journalThumbnail": {
                    "type": "object",
                    "multilingual": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string",
                                    "validation": [
                                        "date_format:Y-m-d H:i:s"
                                    ]
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string",
                                    "validation": [
                                        "date_format:Y-m-d H:i:s"
                                    ]
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "keywords": {
                    "type": "string",
                    "default": "request",
                    "description": "Enable keywords metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "librarianInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "licenseTerms": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "licenseUrl": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "lockssLicense": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "mailingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "mastheadUserGroupIds": {
                    "type": "array",
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "integer"
                    }
                },
                "membershipFee": {
                    "type": "number",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "membershipFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "membershipFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "notifyAllAuthors": {
                    "type": "boolean",
                    "default": true,
                    "description": "When enabled, all authors of a submission will receive a notification when an editorial decision is made regarding a submission. When disabled, only authors assigned to the submission will be notified.",
                    "validation": [
                        "nullable"
                    ]
                },
                "numAnnouncementsHomepage": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysAfterReviewResponseReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysAfterReviewSubmitReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysBeforeReviewResponseReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysBeforeReviewSubmitReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numMonthsAfterSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numMonthsBeforeSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numPageLinks": {
                    "type": "integer",
                    "default": 10,
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "numReviewsPerSubmission": {
                    "type": "integer",
                    "default": 0,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numWeeksAfterSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numWeeksBeforeSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numWeeksPerResponse": {
                    "type": "integer",
                    "default": 4,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numWeeksPerReview": {
                    "type": "integer",
                    "default": 4,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "onlineIssn": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "openAccessPolicy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "orcidApiType": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "in:publicProduction,publicSandbox,memberProduction,memberSandbox"
                    ],
                    "enum": [
                        "publicProduction",
                        "publicSandbox",
                        "memberProduction",
                        "memberSandbox"
                    ]
                },
                "orcidCity": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidClientId": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidClientSecret": {
                    "type": "string",
                    "default": "",
                    "encrypt": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether ORCID functionality is enabled",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidLogLevel": {
                    "type": "string",
                    "default": "ERROR",
                    "validation": [
                        "in:ERROR,INFO"
                    ],
                    "enum": [
                        "ERROR",
                        "INFO"
                    ]
                },
                "orcidSendMailToAuthorsOnPublication": {
                    "type": "boolean",
                    "default": false
                },
                "pageFooter": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "pageHeaderLogoImage": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "paymentPluginName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "paymentsEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "plainLanguageSummary": {
                    "type": "string",
                    "description": "Enable plain language summary metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "primaryLocale": {
                    "type": "string",
                    "validation": [
                        "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                    ]
                },
                "printIssn": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "privacyStatement": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationFee": {
                    "type": "number",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "publicationFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publisherInstitution": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "publisherUrl": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "publishingMode": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "in:0,1,2"
                    ],
                    "enum": [
                        0,
                        1,
                        2
                    ]
                },
                "purchaseArticleFee": {
                    "type": "number",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "purchaseArticleFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "purchaseArticleFeeEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "purchaseArticleFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "purchaseIssueFee": {
                    "type": "number",
                    "validation": [
                        "nullable"
                    ]
                },
                "purchaseIssueFeeEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "rateReviewerOnQuality": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "readerInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "registrationAgency": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "requireAuthorCompetingInterests": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictArticleAccess": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictOnlyPdf": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictReviewerFileAccess": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictSiteAccess": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewGuidelines": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewerAccessKeysEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerSuggestionEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerSuggestionsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "rights": {
                    "type": "string",
                    "description": "Enable rights metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "searchDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "seq": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "min:0"
                    ]
                },
                "showEnsuringLink": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "sidebar": {
                    "type": "array",
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "string",
                        "validation": [
                            "alpha_dash"
                        ]
                    }
                },
                "source": {
                    "type": "string",
                    "description": "Enable source metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "styleSheet": {
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "dateUploaded": {
                            "type": "string"
                        }
                    }
                },
                "subjects": {
                    "type": "string",
                    "description": "Enable subjects metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "submissionAcknowledgement": {
                    "type": "string",
                    "description": "Which authors should receive an email confirmation when a new submission is submitted, which acknowledges that their submission was submitted. When empty, the author will not be sent an email. Default: `allAuthors`",
                    "default": "allAuthors",
                    "validation": [
                        "nullable",
                        "in:,submittingAuthor,allAuthors"
                    ],
                    "enum": [
                        "",
                        "submittingAuthor",
                        "allAuthors"
                    ]
                },
                "submissionChecklist": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionFee": {
                    "type": "number",
                    "validation": [
                        "nullable"
                    ]
                },
                "submissionFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submitWithCategories": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether or not submitting authors should be asked to select categories when they make a new submission."
                },
                "subscriptionAdditionalInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subscriptionEmail": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "subscriptionExpiryPartial": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "subscriptionMailingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "subscriptionName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "subscriptionPhone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "supportEmail": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "supportName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "supportPhone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "supportedAddedSubmissionLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedDefaultSubmissionLocale": {
                    "type": "string",
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "supportedFormLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedSubmissionLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedSubmissionMetadataLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "themePluginPath": {
                    "type": "string",
                    "default": "default"
                },
                "timeFormat": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "type": {
                    "type": "string",
                    "description": "Enable types metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "uploadFilesHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "url": {
                    "type": "string",
                    "readOnly": true,
                    "apiSummary": true
                },
                "urlPath": {
                    "type": "string",
                    "validation": [
                        "regex:\/^[a-zA-Z0-9]+([\\-_][a-zA-Z0-9]+)*$\/"
                    ],
                    "apiSummary": true
                }
            }
        },
        "ContextStats": {
            "type": "object",
            "description": "Reader stats for the homepage for a journal, press or preprint server.",
            "properties": {
                "total": {
                    "description": "The number of views of the homepage.",
                    "type": "integer"
                },
                "context": {
                    "type": "object",
                    "properties": {
                        "_href": {
                            "type": "string"
                        },
                        "abbreviation": {
                            "$ref": "#\/definitions\/LocaleObject"
                        },
                        "acronym": {
                            "$ref": "#\/definitions\/LocaleObject"
                        },
                        "currentIssueId": {
                            "type": "integer"
                        },
                        "description": {
                            "$ref": "#\/definitions\/LocaleObject"
                        },
                        "enabled": {
                            "type": "boolean"
                        },
                        "id": {
                            "type": "integer"
                        },
                        "journalThumbnail": {
                            "$ref": "#\/definitions\/LocaleObject"
                        },
                        "name": {
                            "$ref": "#\/definitions\/LocaleObject"
                        },
                        "seq": {
                            "type": "integer"
                        },
                        "url": {
                            "type": "string"
                        },
                        "urlPath": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "ContributorRole": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "origin": "composed",
                    "description": "The URL to this contributor role in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "origin": "primary"
                },
                "contributorRoleIdentifier": {
                    "type": "string",
                    "description": "The identifier of the role.",
                    "apiSummary": true,
                    "origin": "primary",
                    "validation": [
                        "in:AUTHOR,EDITOR,CHAIR,REVIEWER,REVIEW_ASSISTANT,STATS_REVIEWER,REVIEWER_EXTERNAL,READER,TRANSLATOR,OTHER"
                    ],
                    "enum": [
                        "AUTHOR",
                        "EDITOR",
                        "CHAIR",
                        "REVIEWER",
                        "REVIEW_ASSISTANT",
                        "STATS_REVIEWER",
                        "REVIEWER_EXTERNAL",
                        "READER",
                        "TRANSLATOR",
                        "OTHER"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The unique id of the role in the database.",
                    "readOnly": true,
                    "apiSummary": true,
                    "origin": "primary"
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "Citation": {
            "type": "object",
            "properties": {
                "arxiv": {
                    "type": "string",
                    "description": "Arxiv id, e.g. 1902.02534.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^(?:\\d+.\\d+|[a-z.-]+.\\d+)\/i"
                    ]
                },
                "authors": {
                    "type": "array",
                    "description": "A list of the authors for this work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "givenName": {
                                "type": "string"
                            },
                            "familyName": {
                                "type": "string"
                            },
                            "orcid": {
                                "type": "string",
                                "validation": [
                                    "nullable",
                                    "orcid"
                                ]
                            },
                            "openAlex": {
                                "type": "string"
                            },
                            "wikidata": {
                                "type": "string"
                            }
                        }
                    }
                },
                "date": {
                    "type": "string",
                    "description": "The publication date",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "doi": {
                    "type": "string",
                    "description": "The DOI itself, e.g. 10.1234\/5a6b-7c8d.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^10[.][0-9]{4,}\\\/[^\\s\"<>]+\/i"
                    ]
                },
                "firstPage": {
                    "type": "string",
                    "description": "The first page of the work\/article, e.g. 49.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "handle": {
                    "type": "string",
                    "description": "Handle id, e.g. 11366\/1249.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^[0-9a-z]+(?:.[0-9a-z]+)*\\\/.+\/i"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The unique id of citation in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isStructured": {
                    "type": "boolean",
                    "description": "Whether this citation is assumed structured, is calculated at every update and insert.",
                    "default": false,
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "issue": {
                    "type": "string",
                    "description": "The issue of the journal, e.g. 7442.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "lastPage": {
                    "type": "string",
                    "description": "The last page of the work\/article, e.g. 59.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "openAlex": {
                    "type": "string",
                    "description": "OpenAlex id.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "processingStatus": {
                    "type": "integer",
                    "description": "The metadata lookup status.",
                    "default": 0,
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "in:-2,-1,0,1,2,3,4,5"
                    ],
                    "enum": [
                        -2,
                        -1,
                        0,
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                },
                "publicationId": {
                    "type": "integer",
                    "description": "The publication to which this citation is associated with.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "rawCitation": {
                    "type": "string",
                    "description": "Optional metadata that contains references for works cited in this submission as raw text.",
                    "multilingual": false,
                    "validation": []
                },
                "rawCitationWithLinks": {
                    "type": "string",
                    "description": "Optional metadata that contains references for works cited in this submission as raw text.",
                    "multilingual": false,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The sequence number of citation.",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceHost": {
                    "type": "string",
                    "description": "Host of the source, e.g. Pensoft Publishers",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceIssn": {
                    "type": "string",
                    "description": "Issn_l of the source, e.g. 2167-8359",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceName": {
                    "type": "string",
                    "description": "Name of the source, e.g. PeerJ",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceType": {
                    "type": "string",
                    "description": "Type of the source, e.g. journal, repository",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "in:book series,conference,ebook platform,journal,metadata,other,repository"
                    ],
                    "enum": [
                        "book series",
                        "conference",
                        "ebook platform",
                        "journal",
                        "metadata",
                        "other",
                        "repository"
                    ]
                },
                "title": {
                    "type": "string",
                    "description": "Title of work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "type": {
                    "type": "string",
                    "description": "The type or genre of the work, e.g. journal-article.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "in:book,book-chapter,book-part,book-section,book-series,book-set,book-track,component,database,dataset,dissertation,edited-book,editorial,erratum,grant,journal,journal-article,journal-issue,journal-volume,letter,libguides,monograph,other,paratext,peer-review,posted-content,preprint,proceedings,proceedings-article,proceedings-series,reference-book,reference-entry,report,report-component,report-series,retraction,review,standard,supplementary-materials"
                    ],
                    "enum": [
                        "book",
                        "book-chapter",
                        "book-part",
                        "book-section",
                        "book-series",
                        "book-set",
                        "book-track",
                        "component",
                        "database",
                        "dataset",
                        "dissertation",
                        "edited-book",
                        "editorial",
                        "erratum",
                        "grant",
                        "journal",
                        "journal-article",
                        "journal-issue",
                        "journal-volume",
                        "letter",
                        "libguides",
                        "monograph",
                        "other",
                        "paratext",
                        "peer-review",
                        "posted-content",
                        "preprint",
                        "proceedings",
                        "proceedings-article",
                        "proceedings-series",
                        "reference-book",
                        "reference-entry",
                        "report",
                        "report-component",
                        "report-series",
                        "retraction",
                        "review",
                        "standard",
                        "supplementary-materials"
                    ]
                },
                "url": {
                    "type": "string",
                    "description": "URL for the work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "urn": {
                    "type": "string",
                    "description": "URN for the work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "volume": {
                    "type": "string",
                    "description": "The volume of the issue of the journal, e.g. 495.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "wikidata": {
                    "type": "string",
                    "description": "Wikidata qid.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                }
            }
        },
        "DataCitation": {
            "type": "object",
            "properties": {
                "authors": {
                    "type": "array",
                    "origin": "setting",
                    "description": "A list of the creators for this dataset.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "givenName": {
                                "type": "string"
                            },
                            "familyName": {
                                "type": "string"
                            },
                            "orcid": {
                                "type": "string",
                                "validation": [
                                    "orcid"
                                ]
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "readOnly": true,
                    "apiSummary": true
                },
                "identifier": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The identifier for the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "required_with:identifierType"
                    ]
                },
                "identifierType": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The identifier type for the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "required_with:identifier",
                        "in:DOI,Accession,PURL,ARK,URI,ARXIV,ECLI,Handle,ISSN,ISBN,PMID,PMCID,UUID"
                    ],
                    "enum": [
                        "DOI",
                        "Accession",
                        "PURL",
                        "ARK",
                        "URI",
                        "ARXIV",
                        "ECLI",
                        "Handle",
                        "ISSN",
                        "ISBN",
                        "PMID",
                        "PMCID",
                        "UUID"
                    ]
                },
                "publicationId": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "relationshipType": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The type of relationship between the data and the publication.",
                    "apiSummary": true,
                    "validation": [
                        "in:supporting,generated,analyzed,non-analyzed"
                    ],
                    "enum": [
                        "supporting",
                        "generated",
                        "analyzed",
                        "non-analyzed"
                    ]
                },
                "repository": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The repository where the dataset is stored or the publisher of the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The sequence number of data citation.",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The title of the dataset.",
                    "apiSummary": true
                },
                "url": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The URL of the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "year": {
                    "type": "integer",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The year the dataset was published.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "digits:4"
                    ]
                }
            }
        },
        "Decision": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "The URL to this decision in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "dateDecided": {
                    "type": "string",
                    "description": "The date the decision was taken.",
                    "writeDisabledInApi": true,
                    "apiSummary": true,
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "decision": {
                    "type": "integer",
                    "description": "The decision that was made. One of the `Decision::*` constants.",
                    "apiSummary": true
                },
                "description": {
                    "type": "string",
                    "description": "A user-facing description of this decision type.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "editorId": {
                    "type": "integer",
                    "description": "The user ID of the editor who took the decision.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "label": {
                    "type": "string",
                    "description": "A short label or name for this decision type.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "reviewRoundId": {
                    "type": "integer",
                    "description": "The unique ID of the review round when this decision was taken. Do not include this if the decision is not recorded in a review stage. This is a globally unique id. It does not represent whether the decision was taken in the first or second round of reviews for a submission. See `round` below.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "round": {
                    "type": "integer",
                    "description": "The sequential review round when this decision was taken. For example, the first, second or third round of review for this submission. Do not include this unless using `reviewRoundId`.",
                    "apiSummary": true
                },
                "stageId": {
                    "type": "integer",
                    "description": "The workflow stage when this decision was taken. One of the `WORKFLOW_STAGE_ID_` constants.",
                    "writeDisabledInApi": true,
                    "apiSummary": true,
                    "validation": [
                        "min:1",
                        "max:6"
                    ]
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The decision applies to this submission.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                }
            }
        },
        "DecisionAction": {
            "a": "b",
            "c": "d",
            "actions": [
                {
                    "$ref": "#\/definitions\/DecisionEmail"
                }
            ]
        },
        "Doi": {
            "type": "object",
            "properties": {
                "contextId": {
                    "type": "integer",
                    "description": "The context this DOI was created by.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "doi": {
                    "type": "string",
                    "description": "The DOI itself, such as `10.1234\/5a6b-7c8d`.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^\\d+(.\\d+)+\\\/\/"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "An internal id used to track the DOI.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "registrationAgency": {
                    "type": "string",
                    "description": "The agency with which the DOI is registered. If the DOI was manually marked registered, this will be `null`.",
                    "apiSummary": true
                },
                "resolvingUrl": {
                    "type": "string",
                    "description": "The full URL to resolve the DOI, such as `https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/doi.org\/10.1234\/5a6b-7c8d`.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "status": {
                    "type": "integer",
                    "description": "The status of the DOI, such as whether it has been successfully deposited. Must match the value of one of the following: `Doi::STATUS_UNREGISTERED`, `Doi::STATUS_SUBMITTED`, `Doi::STATUS_REGISTERED`, `Doi::STATUS_ERROR`, `Doi::STATUS_STALE`.",
                    "apiSummary": true,
                    "default": 1,
                    "validation": [
                        "in:1,2,3,4,5"
                    ],
                    "enum": [
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                }
            }
        },
        "EditorialTask": {
            "type": "object",
            "description": "A task or discussion associated with the submission",
            "properties": {
                "assocId": {
                    "type": "integer"
                },
                "assocType": {
                    "type": "integer"
                },
                "createdBy": {
                    "type": "integer"
                },
                "createdByName": {
                    "type": "string"
                },
                "createdByUsername": {
                    "type": "string"
                },
                "dateClosed": {
                    "type": "string"
                },
                "dateDue": {
                    "type": "string"
                },
                "dateStarted": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "latestActivities": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "message": {
                                "type": "string"
                            },
                            "type": {
                                "type": "integer"
                            },
                            "date": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "integer"
                            },
                            "userFullName": {
                                "type": "string"
                            },
                            "settings": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "fileId": {
                                            "type": "int"
                                        },
                                        "filename": {
                                            "type": "string"
                                        },
                                        "stageId": {
                                            "type": "int"
                                        },
                                        "submissionFileId": {
                                            "type": "int"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "notes": {
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/Note"
                    }
                },
                "participants": {
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/TaskParticipant"
                    }
                },
                "stageId": {
                    "type": "integer"
                },
                "startedBy": {
                    "type": "integer"
                },
                "status": {
                    "type": "string"
                },
                "submissionFileIds": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "temporaryFileIds": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "EditTaskTemplate": {
            "type": "object",
            "required": [
                "id",
                "stageId",
                "title",
                "include",
                "type"
            ],
            "properties": {
                "id": {
                    "type": "integer",
                    "format": "int64"
                },
                "stageId": {
                    "type": "integer"
                },
                "title": {
                    "type": "string"
                },
                "include": {
                    "type": "boolean"
                },
                "emailTemplateKey": {
                    "type": "string"
                },
                "type": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ],
                    "description": "1 = discussion, 2 = task"
                },
                "userGroups": {
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/UserGroupSummary"
                    }
                },
                "restrictToUserGroups": {
                    "type": "boolean",
                    "description": "Whether the task\/discussion is restricted to the specified user groups."
                }
            },
            "example": {
                "id": 1,
                "stageId": 5,
                "title": "Copyedit request",
                "include": true,
                "emailTemplateKey": "COPYEDIT_REQUEST",
                "type": 2,
                "userGroups": []
            }
        },
        "AddTaskTemplateRequest": {
            "type": "object",
            "required": [
                "stageId",
                "title",
                "type",
                "userGroupIds"
            ],
            "properties": {
                "stageId": {
                    "type": "integer",
                    "description": "Workflow stage id"
                },
                "title": {
                    "type": "string",
                    "maxLength": 255
                },
                "include": {
                    "type": "boolean",
                    "default": false
                },
                "emailTemplateKey": {
                    "type": "string",
                    "maxLength": 255
                },
                "type": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ],
                    "description": "1 = discussion, 2 = task"
                },
                "userGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "minItems": 1
                },
                "restrictToUserGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the task\/discussion is restricted to the specified user groups."
                }
            },
            "example": {
                "stageId": 5,
                "title": "Request copyediting",
                "include": true,
                "emailTemplateKey": "COPYEDIT_REQUEST",
                "type": 2,
                "userGroupIds": [
                    5,
                    7
                ]
            }
        },
        "ErrorResponse": {
            "type": "object",
            "description": "A response object that will be returned when the request could not be fulfilled.",
            "properties": {
                "error": {
                    "type": "string"
                },
                "errorMessage": {
                    "type": "string"
                }
            }
        },
        "UpdateTaskTemplateRequest": {
            "type": "object",
            "description": "All properties are optional; only provided fields will be updated.",
            "properties": {
                "stageId": {
                    "type": "integer",
                    "description": "Workflow stage id"
                },
                "title": {
                    "type": "string",
                    "maxLength": 255
                },
                "include": {
                    "type": "boolean"
                },
                "emailTemplateKey": {
                    "type": "string",
                    "maxLength": 255
                },
                "type": {
                    "type": "integer",
                    "enum": [
                        1,
                        2
                    ],
                    "description": "1 = discussion, 2 = task"
                },
                "userGroupIds": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    },
                    "minItems": 1,
                    "description": "If provided, replaces the full set of linked user groups."
                },
                "restrictToUserGroups": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether the task\/discussion is restricted to the specified user groups."
                }
            },
            "example": {
                "stageId": 5,
                "title": "Copyedit request (updated)",
                "include": true,
                "emailTemplateKey": "COPYEDIT_REQUEST",
                "type": 2,
                "userGroupIds": [
                    5,
                    7
                ]
            }
        },
        "EmailTemplate": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "alternateTo": {
                    "type": "string",
                    "description": "The `key` of another email template. This is used to assign a custom template to a `Mailable`. The value of `alternateTo` must match the email template key of a `Mailable`.",
                    "apiSummary": true
                },
                "body": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextId": {
                    "type": "integer",
                    "description": "The ID of the context (journal\/press) this email is related to. Only used for custom email templates. Default is `null`.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The email template ID.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "key": {
                    "type": "string",
                    "description": "A unique key for this email template.",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subject": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "Email": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "A URL to this object in the REST API.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocId": {
                    "type": "integer",
                    "description": "The ID of the submission associated with the logged email.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocType": {
                    "type": "integer",
                    "description": "The assoc object. Typically `ASSOC_TYPE_SUBMISSION`.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "body": {
                    "type": "string",
                    "description": "The full body of the email.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "dateSent": {
                    "type": "string",
                    "description": "The date the email was logged.",
                    "readOnly": true,
                    "apiSummary": true,
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "eventType": {
                    "type": "integer",
                    "description": "The type of event resulting in the email being sent. One of the `SubmissionEmailLogEventType` values.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "fromAddress": {
                    "type": "string",
                    "description": "The email address of the sender.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The ID of the email log.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "recipients": {
                    "type": "string",
                    "description": "The recipients' names and email addresses.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "senderId": {
                    "type": "integer",
                    "description": "The user ID of the email sender. Null for automated emails.",
                    "readOnly": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "subject": {
                    "type": "string",
                    "description": "The subject of the email.",
                    "readOnly": true,
                    "apiSummary": true
                }
            }
        },
        "Funder": {
            "type": "object",
            "properties": {
                "grants": {
                    "type": "array",
                    "origin": "setting",
                    "description": "A list of the grants for this funder.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "grantDoi": {
                                "type": "string",
                                "validation": [
                                    "nullable",
                                    "regex:#^10[.][0-9]{4,}\/\\S+$#i"
                                ]
                            },
                            "grantName": {
                                "type": "string"
                            },
                            "grantNumber": {
                                "type": "string"
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer",
                    "description": "The unique id of funder in the database.",
                    "origin": "primary",
                    "readOnly": true,
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) id of this funder.",
                    "origin": "primary",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                },
                "rorObject": {
                    "type": "object",
                    "description": "An object representing the ROR for this funder.",
                    "origin": "composed",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Ror",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the ROR for this funder.",
                        "origin": "composed",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Ror"
                    }
                },
                "seq": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The sequence number of funder.",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The submission to which this funder is associated with.",
                    "origin": "primary",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                }
            }
        },
        "Galley": {
            "type": "object",
            "properties": {
                "doiObject": {
                    "type": "object",
                    "description": "DOI object for this galley",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "DOI object for this galley",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "file": {
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/SubmissionFile",
                    "properties": {
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/SubmissionFile"
                    }
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "isApproved": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "label": {
                    "type": "string",
                    "description": "A human-readable label for this galley. For the primary article, it usually indicates the format like PDF, ePub or full text. For supplementary files it often indicates the content, such as source data or interview transcripts.",
                    "apiSummary": true
                },
                "locale": {
                    "type": "string",
                    "description": "The primary locale of this galley.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "pub-id::publisher-id": {
                    "type": "string",
                    "description": "A unique ID provided by the publisher. This is often used to record the ID of this galley in an external database, in cases where the publisher maintains separate records.",
                    "apiSummary": true
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "seq": {
                    "type": "integer",
                    "description": "In what order this galley should appear in lists of galleys for this publication.",
                    "apiSummary": true
                },
                "submissionFileId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "urlPath": {
                    "type": "string",
                    "description": "An optional path to use in the URL instead of the ID.",
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$\/"
                    ]
                },
                "urlPublished": {
                    "type": "string",
                    "description": "The URL where this galley can be viewed or downloaded.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlRemote": {
                    "type": "string",
                    "description": "An optional URL where the galley can be viewed or downloaded.",
                    "apiSummary": true,
                    "validation": [
                        "url"
                    ]
                }
            }
        },
        "Institution": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "The URL to this institution in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "description": "The context which added this institution.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "deletedAt": {
                    "type": "string",
                    "description": "The date this institution was deleted, if it has been deleted. Institutions are kept after being deleted because they may be referenced in statistics data.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of the institution in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "ipRanges": {
                    "type": "array",
                    "description": "A list of IP ranges belonging to this institution. Used to track usage statistics and subscription access by institution.",
                    "apiSummary": true,
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                }
            }
        },
        "InvalidParametersResponse": {
            "type": "object",
            "description": "A response object that will be returned when there are validation errors for the request parameters. Typically used with forms.",
            "example": {
                "name": [
                    "You must provide a name to create a new user."
                ],
                "roles": [
                    "You must assign the user to one or more roles."
                ]
            }
        },
        "Issue": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "readOnly": true,
                    "apiSummary": true
                },
                "accessStatus": {
                    "type": "integer"
                },
                "articles": {
                    "type": "array",
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/SubmissionSummary"
                    }
                },
                "contextAbbreviation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextPrimaryLocale": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "coverImage": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "coverImageAltText": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "coverImageUrl": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dateNotified": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "datePublished": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "doiObject": {
                    "type": "object",
                    "description": "DOI object for this issue",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "DOI object for this issue",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "galleys": {
                    "type": "array",
                    "readOnly": true,
                    "apiSummary": true,
                    "items": {
                        "$ref": "#\/definitions\/Galley"
                    }
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "identification": {
                    "type": "string",
                    "readOnly": true,
                    "apiSummary": true
                },
                "journalId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "lastModified": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "number": {
                    "type": "string",
                    "apiSummary": true
                },
                "onlineIssn": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "openAccessDate": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "originalStyleFileName": {
                    "type": "string"
                },
                "printIssn": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "published": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "publishedUrl": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "url"
                    ]
                },
                "publisher": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "publisherLocation": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sections": {
                    "type": "array",
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/SectionSummary"
                    }
                },
                "showNumber": {
                    "type": "boolean"
                },
                "showTitle": {
                    "type": "boolean"
                },
                "showVolume": {
                    "type": "boolean"
                },
                "showYear": {
                    "type": "boolean"
                },
                "styleFileName": {
                    "type": "string"
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "urlPath": {
                    "type": "string",
                    "description": "An optional path to use in the URL instead of the ID.",
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$\/"
                    ]
                },
                "volume": {
                    "type": "integer",
                    "apiSummary": true
                },
                "year": {
                    "type": "integer",
                    "apiSummary": true
                }
            }
        },
        "IssueStats": {
            "type": "object",
            "description": "Reader stats for an issue.",
            "properties": {
                "totalViews": {
                    "description": "The number of views of the issue table of contents and galley.",
                    "type": "integer"
                },
                "tocViews": {
                    "description": "The number of views of the issue table of contents.",
                    "type": "integer"
                },
                "issueGalleyViews": {
                    "description": "The number of views of the issue galley.",
                    "type": "integer"
                },
                "issue": {
                    "type": "object",
                    "properties": {
                        "_href": {
                            "type": "string"
                        },
                        "id": {
                            "type": "integer"
                        },
                        "identification": {
                            "type": "string"
                        },
                        "publishedUrl": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "JatsFile": {
            "type": "object",
            "description": "Represents the JATS XML attached to a submission's publication. When the publication has an uploaded JATS XML source file, the response also includes the file's summary properties (those of a `SubmissionFileSummary`).",
            "properties": {
                "jatsContent": {
                    "type": "string",
                    "description": "The JATS XML content. May be generated dynamically from publication metadata, or read from an uploaded source file."
                },
                "isDefaultContent": {
                    "type": "boolean",
                    "description": "`true` when `jatsContent` was generated dynamically from publication metadata (because no JATS source file has been uploaded); `false` when it was read from an uploaded source file."
                },
                "loadingContentError": {
                    "type": "string",
                    "description": "Present only if the JATS content could not be loaded. Contains a translated error message."
                }
            },
            "example": {
                "_href": "https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.org\/publicknowledge\/api\/v1\/submissions\/17\/files\/30",
                "id": 30,
                "submissionId": 17,
                "name": {
                    "en": "jats-23-20250612-101530.xml"
                },
                "fileStage": 30,
                "mimetype": "application\/xml",
                "jatsContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<article>...<\/article>",
                "isDefaultContent": false
            }
        },
        "InvitationUser": {
            "type": "object",
            "description": "A user associated with an invitation. Returned for both an existing matched user and the prospective new user built from the invitation payload.",
            "properties": {
                "email": {
                    "type": "string"
                },
                "fullName": {
                    "type": "string"
                },
                "familyName": {
                    "type": "string",
                    "description": "Family name in the user's primary locale."
                },
                "givenName": {
                    "type": "string",
                    "description": "Given name in the user's primary locale."
                },
                "country": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code."
                },
                "affiliation": {
                    "type": "string",
                    "description": "Affiliation in the user's primary locale."
                },
                "orcid": {
                    "type": "string"
                },
                "orcidIsVerified": {
                    "type": "boolean"
                }
            }
        },
        "UserRoleAssignmentInvite": {
            "type": "object",
            "description": "A user role assignment invitation. Combines the base invitation record with the role-assignment payload (proposed user details, ORCID data and the user groups to be assigned).",
            "properties": {
                "id": {
                    "type": "integer",
                    "description": "The invitation ID."
                },
                "status": {
                    "type": "string",
                    "description": "The invitation status.",
                    "enum": [
                        "initialized",
                        "pending",
                        "accepted",
                        "declined",
                        "cancelled"
                    ]
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time"
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time"
                },
                "expiryDate": {
                    "type": "string",
                    "format": "date-time",
                    "description": "When the invitation key expires."
                },
                "contextId": {
                    "type": "integer",
                    "description": "The context the invitation belongs to."
                },
                "inviterId": {
                    "type": "integer",
                    "description": "ID of the user who sent the invitation."
                },
                "userId": {
                    "type": "integer",
                    "description": "ID of the invited user, or `null` when the invitation is for a new user."
                },
                "email": {
                    "type": "string",
                    "description": "The invitee's email address."
                },
                "givenName": {
                    "type": "object",
                    "description": "Localized given name, keyed by locale."
                },
                "familyName": {
                    "type": "object",
                    "description": "Localized family name, keyed by locale."
                },
                "affiliation": {
                    "type": "object",
                    "description": "Localized affiliation, keyed by locale."
                },
                "country": {
                    "type": "string",
                    "description": "ISO 3166-1 alpha-2 country code for the invitee."
                },
                "username": {
                    "type": "string",
                    "description": "Proposed username for a new user."
                },
                "sendEmailAddress": {
                    "type": "string",
                    "description": "Email address the invitation is sent to."
                },
                "emailSubject": {
                    "type": "string"
                },
                "emailBody": {
                    "type": "string"
                },
                "orcid": {
                    "type": "string"
                },
                "orcidIsVerified": {
                    "type": "boolean"
                },
                "orcidAccessDenied": {
                    "type": "string"
                },
                "orcidAccessToken": {
                    "type": "string"
                },
                "orcidRefreshToken": {
                    "type": "string"
                },
                "orcidAccessScope": {
                    "type": "string"
                },
                "orcidAccessExpiresOn": {
                    "type": "string"
                },
                "userGroupsToAdd": {
                    "type": "array",
                    "description": "The roles (user groups) to assign when the invitation is accepted.",
                    "items": {
                        "type": "object",
                        "properties": {
                            "userGroupId": {
                                "type": "integer"
                            },
                            "userGroupName": {
                                "type": "string",
                                "description": "Localized name of the user group."
                            },
                            "masthead": {
                                "type": "boolean"
                            },
                            "dateStart": {
                                "type": "string",
                                "format": "date"
                            },
                            "dateEnd": {
                                "type": "string",
                                "format": "date"
                            }
                        }
                    }
                },
                "existingUser": {
                    "description": "The matched existing user, or `null` if the invitation is for a new user.",
                    "$ref": "#\/definitions\/InvitationUser"
                },
                "newUser": {
                    "description": "The prospective new user built from the payload, or `null` if an existing user was matched.",
                    "$ref": "#\/definitions\/InvitationUser"
                }
            }
        },
        "LocaleObject": {
            "type": "object",
            "description": "Key\/value pairs containing data stored by locale key.",
            "example": {
                "en": "Filename",
                "fr_CA": "Nom de fichier"
            }
        },
        "Mailable": {
            "type": "object",
            "example": {
                "_href": "https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.org\/publicknowledge\/api\/v1\/mailables\/DISCUSSION_NOTIFICATION_COPYEDITING",
                "dataDescriptions": {
                    "journalName": "The journal's name",
                    "journalUrl": "The URL to the journal's homepage",
                    "...": "All prepared data"
                },
                "description": "This email is sent when a discussion is created or replied to in the copyediting stage.",
                "emailTemplateKey": "DISCUSSION_NOTIFICATION_COPYEDITING",
                "fromRoleIds": [
                    17,
                    4097,
                    65536
                ],
                "groupIds": [
                    "copyediting"
                ],
                "name": "Discussion (Copyediting)",
                "supportsTemplates": true,
                "toRoleIds": [
                    17,
                    4097,
                    65536
                ],
                "emailTemplates": [
                    {
                        "_href": "https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.org\/publicknowledge\/api\/v1\/emailTemplates\/DISCUSSION_NOTIFICATION_COPYEDITING",
                        "alternateTo": null,
                        "body": {
                            "fr_CA": "Pri\u00e8re de saisir votre message.",
                            "en": "Please enter your message."
                        },
                        "contextId": null,
                        "id": null,
                        "key": "DISCUSSION_NOTIFICATION_COPYEDITING",
                        "name": {
                            "fr_CA": "",
                            "en": "Discussion (Copyediting)"
                        },
                        "subject": {
                            "fr_CA": "Un message \u00e0 propos de la revue {$journalName}",
                            "en": "A message regarding {$journalName}"
                        }
                    },
                    {
                        "_href": "https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.org\/publicknowledge\/api\/v1\/emailTemplates\/COPYEDIT_REQUEST",
                        "alternateTo": "DISCUSSION_NOTIFICATION_COPYEDITING",
                        "body": {
                            "en": "<p>Dear {$recipientName},<\/p><p>A new submission is ready to be copyedited:<\/p><p><a href\"{$submissionUrl}\">{$submissionId} {$submissionTitle}<\/a><br \/>{$journalName}<\/p><p>Please follow these steps to complete this task:<\/p><ol><li>1. Click on the Submission URL below.<\/li><li>2. Open any files available under Draft Files and edit the files. Use the Copyediting Discussions area if you need to contact the editor(s) or author(s).<\/li><li>3. Save the copyedited file(s) and upload them to the Copyedited panel.<\/li><li>4. Use the Copyediting Discussions to notify the editor(s) that all files have been prepared, and that the Production process may begin.<\/li><\/ol><p>If you are unable to undertake this work at this time or have any questions, please contact me. Thank you for your contribution to this journal.<\/p><p>Kind regards,<\/p>{$signature}",
                            "fr_CA": "{$recipientName},<br \/>\n<br \/>\nJ'aimerais que vous effectuiez la r\u00e9vision du manuscrit intitul\u00e9 \u00ab {$submissionTitle} \u00bb pour la revue {$journalName} \u00e0 l'aide des \u00e9tapes suivantes.<br \/>\n1. Cliquer sur l'URL de la soumission ci-dessous.<br \/>\n2. Ouvrir le(s) fichier(s) disponible(s) sous Fichiers des \u00e9bauches finales et effectuer votre r\u00e9vision, tout en ajoutant des discussions sur la r\u00e9vision, le cas \u00e9ch\u00e9ant.<br \/>\n3. Enregistrer le(s) fichier(s) r\u00e9vis\u00e9(s) et le(s) t\u00e9l\u00e9verser dans la section Version(s) r\u00e9vis\u00e9e(s).<br \/>\n4. Informer le,la r\u00e9dacteur-trice que tous les fichiers ont \u00e9t\u00e9 r\u00e9vis\u00e9s et que l'\u00e9tape de production peut d\u00e9buter.<br \/>\n<br \/>\nURL de la revue {$journalName} : {$journalUrl}<br \/>\nURL de la soumission : {$submissionUrl}<br \/>\nNom d'utilisateur-trice : {$recipientUsername}"
                        },
                        "contextId": 1,
                        "id": 1,
                        "key": "COPYEDIT_REQUEST",
                        "name": {
                            "en": "Request Copyedit",
                            "fr_CA": ""
                        },
                        "subject": {
                            "en": "Submission {$submissionId} is ready to be copyedited for {$contextAcronym}",
                            "fr_CA": "Demande de r\u00e9vision d'une soumission"
                        }
                    }
                ]
            }
        },
        "MailableSummary": {
            "type": "object",
            "example": {
                "_href": "https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/example.org\/publicknowledge\/api\/v1\/mailables\/DISCUSSION_NOTIFICATION_COPYEDITING",
                "dataDescriptions": {
                    "journalName": "The journal's name",
                    "journalUrl": "The URL to the journal's homepage",
                    "...": "All prepared data"
                },
                "description": "This email is sent when a discussion is created or replied to in the copyediting stage.",
                "emailTemplateKey": "DISCUSSION_NOTIFICATION_COPYEDITING",
                "fromRoleIds": [
                    17,
                    4097,
                    65536
                ],
                "groupIds": [
                    "copyediting"
                ],
                "name": "Discussion (Copyediting)",
                "supportsTemplates": true,
                "toRoleIds": [
                    17,
                    4097,
                    65536
                ]
            }
        },
        "NavigationMenu": {
            "type": "object",
            "properties": {
                "areaName": {
                    "type": "string",
                    "description": "The theme navigation area this menu is assigned to.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID. Use 0 for site-level menus.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of the navigation menu.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "title": {
                    "type": "string",
                    "description": "The title of the navigation menu.",
                    "apiSummary": true,
                    "validation": [
                        "required"
                    ]
                }
            }
        },
        "NavigationMenuItem": {
            "type": "object",
            "properties": {
                "content": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID. Use 0 for site-level items.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of the navigation menu item.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "localizedTitle": {
                    "type": "string",
                    "description": "The localized title of the navigation menu item.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "path": {
                    "type": "string",
                    "description": "The URL path for custom navigation menu items.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9\\\/._-]+$\/"
                    ]
                },
                "queryParams": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "remoteUrl": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "seq": {
                    "type": "integer",
                    "description": "The sequence order of the navigation menu item.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "titleLocaleKey": {
                    "type": "string",
                    "description": "The locale key for the default title (used for system-defined items).",
                    "apiSummary": false,
                    "readOnly": true
                },
                "type": {
                    "type": "string",
                    "description": "The type of navigation menu item (e.g., NMI_TYPE_CUSTOM, NMI_TYPE_ABOUT).",
                    "apiSummary": true,
                    "validation": [
                        "required"
                    ]
                },
                "url": {
                    "type": "string",
                    "description": "The computed URL for this navigation menu item.",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "Note": {
            "type": "object",
            "description": "A note attached to a task or discussion.",
            "properties": {
                "contents": {
                    "type": "string"
                },
                "createdByEmail": {
                    "type": "string"
                },
                "createdByName": {
                    "type": "string"
                },
                "createdByUsername": {
                    "type": "string"
                },
                "dateCreated": {
                    "type": "string"
                },
                "dateModified": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "userId": {
                    "type": "integer"
                },
                "submissionFiles": {
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/SubmissionFile"
                    }
                }
            }
        },
        "Publication": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "abstract": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "accessStatus": {
                    "type": "integer",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "articleNumber": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "authors": {
                    "type": "array",
                    "description": "A list of the authors for this publication.",
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/Author"
                    }
                },
                "authorsString": {
                    "type": "string",
                    "description": "All of the authors rendered with the appropriate separators according to the locale.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "authorsStringIncludeInBrowse": {
                    "type": "string",
                    "description": "A list of authors that are included in publication lists, like tables of content and search results, rendered with the appropriate separators according to the locale.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "authorsStringShort": {
                    "type": "string",
                    "description": "A shortened version of the authors rendered with the appropriate separators according to the locale.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "canCurrentUserChangeMetadata": {
                    "type": "boolean",
                    "description": "Whether the current user can change the metadata of this publication.",
                    "apiSummary": true
                },
                "categoryIds": {
                    "type": "array",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "integer"
                    }
                },
                "citations": {
                    "type": "array",
                    "description": "Optional metadata that contains an array of references for works cited in this submission. References have been split and parsed from the raw text.",
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/Citation"
                    }
                },
                "citationsRaw": {
                    "type": "string",
                    "description": "Optional metadata that contains references for works cited in this submission as raw text.",
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "contextAbbreviation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextPrimaryLocale": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "copyrightHolder": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copyrightYear": {
                    "type": "integer",
                    "description": "The copyright year for this publication.",
                    "validation": [
                        "nullable"
                    ]
                },
                "coverImage": {
                    "type": "object",
                    "multilingual": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "coverage": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "createdAt": {
                    "type": "string",
                    "description": "The timestamp when this publication was created.",
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ],
                    "apiSummary": true
                },
                "dataAvailability": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dataCitations": {
                    "type": "array",
                    "description": "Optional metadata that contains an array of citations for data cited in this submission.",
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/DataCitation"
                    }
                },
                "datePublished": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "disciplines": {
                    "type": "array",
                    "description": "Optional metadata that describes the submission's types of study or branches of knowledge.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "doiObject": {
                    "type": "object",
                    "description": "An object representing the DOI for this publication.",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the DOI for this publication.",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "fullTitle": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fundingStatement": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "galleys": {
                    "type": "array",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/Galley"
                    }
                },
                "hideAuthor": {
                    "type": "boolean",
                    "description": "Whether the contributor details should be displayed for this publication. Commonly used for editorial statements without individual authorship.",
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "id": {
                    "type": "integer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "issueId": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "jatsPublicVisibility": {
                    "type": "boolean",
                    "description": "Whether the JATS XML file should be publicly available for download when the publication is published.",
                    "apiSummary": true,
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "keywords": {
                    "type": "array",
                    "description": "Optional metadata, usually one- to three-word phrases that are used to indicate the main topics of a submission.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "lastModified": {
                    "type": "string",
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "licenseUrl": {
                    "type": "string",
                    "description": "A URL to a webpage describing the license terms for this publication.",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "locale": {
                    "type": "string",
                    "description": "The primary locale of the submission this publication is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "onlineIssn": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "pages": {
                    "type": "string",
                    "description": "The pages of the issue in which this article appears if it is published in a physical format.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "plainLanguageSummary": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "prefix": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "primaryContactId": {
                    "type": "integer",
                    "description": "Which `contributor` is the primary contact for this publication.",
                    "apiSummary": true
                },
                "printIssn": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "pub-id::publisher-id": {
                    "type": "string",
                    "description": "A unique ID provided by the publisher. It will be used in the publication's URL path instead of the `id` when present.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "publisher": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "publisherLocation": {
                    "type": "string",
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewDoiItems": {
                    "type": "array",
                    "description": "Information about review-related DOI object for open peer reviews and author responses.",
                    "readOnly": true,
                    "apiSummary": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "pubObjectType": {
                                "type": "string",
                                "description": "One of Repo::doi()::TYPE_PEER_REVIEW or Repo::doi()::TYPE_AUTHOR_RESPONSE"
                            },
                            "pubObjectId": {
                                "type": "integer",
                                "description": "Either a ReviewAssignment or AuthorResponse ID"
                            },
                            "doiObject": {
                                "type": "object",
                                "description": "An object representing the DOI for the given review-related pub object",
                                "$ref": "#\/definitions\/Doi"
                            }
                        }
                    }
                },
                "rights": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sectionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "seq": {
                    "type": "integer",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "source": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sourcePublicationId": {
                    "type": "integer",
                    "description": "The ID of another publication that this one is derived from. Used to reference the source publication when creating versions.",
                    "validation": [
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "Whether the publication is Queued (not yet scheduled for publication), Declined, Published or Scheduled (scheduled for publication at a future date). One of the `PKPPublication::STATUS_*` constants. Default is `PKPPublication::STATUS_QUEUED`.",
                    "apiSummary": true,
                    "default": 1,
                    "validation": [
                        "in:1,3,4,5,6,7"
                    ],
                    "enum": [
                        1,
                        3,
                        4,
                        5,
                        6,
                        7
                    ]
                },
                "subjects": {
                    "type": "array",
                    "description": "Optional metadata that consists of keywords, key phrases or classification codes that describe the submission's topics.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "submissionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "subtitle": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "summaryOfChanges": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "supportingAgencies": {
                    "type": "array",
                    "description": "Optional metadata that indicates the source of research funding or other institutional support.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "type": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "updateType": {
                    "type": "string",
                    "description": "The type of update represented by this publication version (e.g. addendum, correction, retraction). One of the UpdateType enumeration values.",
                    "apiSummary": true,
                    "validation": [
                        "in:addendum,clarification,correction,corrigendum,erratum,expression_of_concern,new_edition,new_version,partial_retraction,removal,retraction,withdrawal"
                    ],
                    "enum": [
                        "addendum",
                        "clarification",
                        "correction",
                        "corrigendum",
                        "erratum",
                        "expression_of_concern",
                        "new_edition",
                        "new_version",
                        "partial_retraction",
                        "removal",
                        "retraction",
                        "withdrawal"
                    ]
                },
                "urlPath": {
                    "type": "string",
                    "description": "An optional path to use in the URL instead of the ID.",
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$\/"
                    ]
                },
                "urlPublished": {
                    "type": "string",
                    "description": "The public URL for this publication or where it will be available if it has not yet been published.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "versionMajor": {
                    "type": "integer",
                    "description": "The major part of the version of a publication given the major.minor notation of the version",
                    "apiSummary": true,
                    "validation": [
                        "min:1"
                    ]
                },
                "versionMinor": {
                    "type": "integer",
                    "description": "The minor part of the version of a publication given the major.minor notation of the version",
                    "apiSummary": true,
                    "validation": [
                        "min:0"
                    ]
                },
                "versionStage": {
                    "type": "string",
                    "description": "The version stage as given in VersionStage enumeration",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "versionString": {
                    "type": "string",
                    "description": "The calculated display string of the version of this publication",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "PublicationCityStats": {
            "type": "object",
            "description": "Reader stats of a publication by city.",
            "properties": {
                "city": {
                    "type": "string"
                },
                "region": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "total": {
                    "description": "The number of visits to this publication from this city.",
                    "type": "integer"
                },
                "unique": {
                    "description": "The number of unique visitors to this publication from this city.",
                    "type": "integer"
                }
            }
        },
        "PublicationRegionStats": {
            "type": "object",
            "description": "Reader stats of a publication by region.",
            "properties": {
                "region": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "total": {
                    "description": "The number of visits to this publication from this region.",
                    "type": "integer"
                },
                "unique": {
                    "description": "The number of unique visitors to this publication from this region.",
                    "type": "integer"
                }
            }
        },
        "PublicationCountryStats": {
            "type": "object",
            "description": "Reader stats of a publication by country.",
            "properties": {
                "country": {
                    "type": "string"
                },
                "total": {
                    "description": "The number of visits to this publication from this country.",
                    "type": "integer"
                },
                "unique": {
                    "description": "The number of unique visitors to this publication from this country.",
                    "type": "integer"
                }
            }
        },
        "PublicationFileStats": {
            "type": "object",
            "description": "The number of downloads of a submission file.",
            "properties": {
                "submissionId": {
                    "type": "integer"
                },
                "submissionTitle": {
                    "type": "string"
                },
                "submissionFileId": {
                    "type": "integer"
                },
                "fileName": {
                    "type": "string"
                },
                "downloads": {
                    "type": "integer"
                }
            }
        },
        "PublicationStats": {
            "type": "object",
            "description": "The total abstract and galley views for a published submission.",
            "properties": {
                "abstractViews": {
                    "type": "integer"
                },
                "galleyViews": {
                    "type": "integer"
                },
                "pdfViews": {
                    "type": "integer"
                },
                "htmlViews": {
                    "type": "integer"
                },
                "otherViews": {
                    "type": "integer"
                },
                "publication": {
                    "type": "object",
                    "properties": {
                        "_href": {
                            "type": "string"
                        },
                        "fullTitle": {
                            "$ref": "#\/definitions\/LocaleObject"
                        },
                        "id": {
                            "type": "integer"
                        },
                        "shortAuthorString": {
                            "type": "string"
                        },
                        "urlPublished": {
                            "type": "string"
                        },
                        "urlWorkflow": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "Contributor": {
            "type": "object",
            "properties": {
                "affiliations": {
                    "type": "array",
                    "description": "The scholarly institution this contributor is employed by or affiliated with.",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/Affiliation"
                    }
                },
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "competingInterests": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contributorRoles": {
                    "type": "array",
                    "description": "The names of this contributor's roles in the publication, such as 'Author' or 'Translator', and the translations",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/ContributorRole"
                    },
                    "validation": [
                        "min:1",
                        "nullable"
                    ]
                },
                "contributorType": {
                    "type": "string",
                    "description": "The name of this contributor's type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "country": {
                    "type": "string",
                    "description": "The author's country in a two-letter code (ISO 3166-1). See [all codes](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements).",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "country",
                        "regex:\/^[A-Z]{2}$\/"
                    ]
                },
                "creditRoles": {
                    "type": "array",
                    "description": "CRediT Roles",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "role": {
                                "type": "string",
                                "validation": [
                                    "url"
                                ]
                            },
                            "degree": {
                                "type": "string"
                            }
                        }
                    },
                    "validation": [
                        "nullable"
                    ]
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost",
                        "nullable"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "type": "string",
                    "description": "The full name of the author. This will be the preferredPublicName or, if that is not available, a string containing the givenName and familyName, or organization name, or anonymous",
                    "apiSummary": true,
                    "readOnly": true
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "includeInBrowse": {
                    "type": "boolean",
                    "description": "Whether or not to include this contributor in author lists when the publication appears in search results, tables of content and catalog entries.",
                    "default": true,
                    "apiSummary": true
                },
                "orcid": {
                    "type": "string",
                    "description": "The ORCID of this contributor. See: https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/orcid.org\/",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "orcid"
                    ]
                },
                "orcidDisplayValue": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidVerificationRequested": {
                    "type": "boolean",
                    "apiSummary": false
                },
                "organizationName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "rorId": {
                    "type": "string",
                    "description": "The ROR ID for ORGANIZATION contributor type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The order in which this contributor should appear in a list of contributors.",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The primary locale of the submission this author is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "url": {
                    "type": "string",
                    "description": "An optional URL to this contributor's webpage.",
                    "validation": [
                        "url",
                        "nullable"
                    ]
                }
            }
        },
        "ReviewAssignment": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "A URL to this object in the REST API.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "cancelled": {
                    "type": "boolean",
                    "description": "Indicates whether review assignment was cancelled",
                    "apiSummary": true
                },
                "comments": {
                    "type": "string",
                    "description": "Comments from a reviewer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "competingInterests": {
                    "type": "string",
                    "description": "Reviewer's competing interests",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "competingInterestsDeclared": {
                    "type": "boolean",
                    "description": "Whether the reviewer answered the competing interests question. False when no declaration is on record, e.g. because the context did not request one.",
                    "apiSummary": true
                },
                "considered": {
                    "type": "integer",
                    "description": "Whether editor considered a review assignment request",
                    "apiSummary": true,
                    "validation": [
                        "in:0,1,2,3,4"
                    ],
                    "enum": [
                        0,
                        1,
                        2,
                        3,
                        4
                    ]
                },
                "dateAcknowledged": {
                    "type": "string",
                    "description": "Date the editor acknowledged the review",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateAssigned": {
                    "type": "string",
                    "description": "Date the reviewer was assigned to the submission",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateCancelled": {
                    "type": "string",
                    "description": "Date the reviewer cancelled the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateCompleted": {
                    "type": "string",
                    "description": "Date the assignment was completed",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateConfirmed": {
                    "type": "string",
                    "description": "Date the reviewer confirmed the assignment to the submission",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateConsidered": {
                    "type": "string",
                    "description": "Date the editor confirmed the review",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateDue": {
                    "type": "string",
                    "description": "Date the review assignment should be completed",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateNotified": {
                    "type": "string",
                    "description": "Date the reviewer was notified about the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateRated": {
                    "type": "string",
                    "description": "Date the submission was rated by the reviewer",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateReminded": {
                    "type": "string",
                    "description": "Date the reviewer was reminded about the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateResponseDue": {
                    "type": "string",
                    "description": "Date until which the response from reviewer is expected",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "declined": {
                    "type": "boolean",
                    "description": "Whether review assignment was declined by the reviewer",
                    "apiSummary": true
                },
                "doiObject": {
                    "type": "object",
                    "description": "An object representing the DOI for this review assignment.",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the DOI for this review assignment.",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "id": {
                    "type": "integer",
                    "description": "The ID of this review assignment",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isReviewPubliclyVisible": {
                    "type": "boolean",
                    "description": "Boolean indicating whether the review is publicly visible or not.",
                    "apiSummary": true
                },
                "lastModified": {
                    "type": "string",
                    "description": "Date of the most recent assignment update",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "lastModifiedBy": {
                    "type": "object",
                    "description": "The user who last made modifications to the submitted review.",
                    "apiSummary": true,
                    "readOnly": true,
                    "properties": {
                        "id": {
                            "type": "integer"
                        },
                        "userFullName": {
                            "type": "string"
                        }
                    }
                },
                "lastModifiedById": {
                    "type": "integer",
                    "description": "The ID of the user who last made modifications to the submitted review.",
                    "apiSummary": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidReviewPutCode": {
                    "type": "string",
                    "description": "Put Code for a review work submitted to ORCID.",
                    "apiSummary": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "publicationTitle": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "quality": {
                    "type": "integer",
                    "description": "Assessment of the review quality",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reminderWasAutomatic": {
                    "type": "boolean",
                    "description": "Whether the assignment reminder for the reviewer was sent automatically",
                    "apiSummary": true
                },
                "requestResent": {
                    "type": "boolean",
                    "description": "Whether the review request was resent to the reviewer",
                    "apiSummary": true
                },
                "reviewFormId": {
                    "type": "integer",
                    "description": "The ID of the custom review form",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewMethod": {
                    "type": "integer",
                    "description": "The method used in the review. One of the SUBMISSION_REVIEW_METHOD_ constants",
                    "apiSummary": true
                },
                "reviewRoundId": {
                    "type": "integer",
                    "description": "The ID of the review round",
                    "apiSummary": true
                },
                "reviewerFullName": {
                    "type": "string",
                    "description": "The full name of the reviewer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "reviewerId": {
                    "type": "integer",
                    "description": "Reviewer's unique ID",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerRecommendation": {
                    "type": "object",
                    "description": "An object representing the reviewer's recommendation, including its id, type, and human-readable label.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "id": {
                            "type": "integer"
                        },
                        "type": {
                            "type": "integer"
                        },
                        "label": {
                            "type": "string"
                        }
                    }
                },
                "reviewerRecommendationId": {
                    "type": "integer",
                    "description": "Reviewer recommendation id",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerRecommendationType": {
                    "type": "integer",
                    "description": "Machine-readable type of the reviewer recommendation (1=approved, 2=notApproved, 3=revisionsRequested, 4=withComments). Null if no recommendation has been made.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerUserName": {
                    "type": "string",
                    "description": "The username of the reviewer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "round": {
                    "type": "integer",
                    "description": "The round of the review stage",
                    "apiSummary": true
                },
                "stageId": {
                    "type": "integer",
                    "description": "The ID of the review stage: external or internal review",
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "The status of the review assignment. One of the REVIEW_ASSIGNMENT_STATUS_ constants",
                    "apiSummary": true
                },
                "step": {
                    "type": "integer",
                    "description": "The current step of the reviewer form",
                    "apiSummary": true
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The ID of the submission associated with the assignment",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The locale of the submission associated with the assignment",
                    "apiSummary": true
                },
                "submissionStageId": {
                    "type": "integer",
                    "description": "The stage of the editorial workflow that this submission is currently in. One of the `WORKFLOW_STAGE_ID_` constants. Default is `WORKFLOW_STAGE_ID_SUBMISSION`.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "min:1",
                        "max:5"
                    ]
                }
            }
        },
        "ReviewerSuggestion": {
            "type": "object",
            "description": "A reviewer suggestion made by an author when submitting their work.",
            "properties": {
                "id": {
                    "type": "integer",
                    "readOnly": true
                },
                "submissionId": {
                    "type": "integer"
                },
                "suggestingUserId": {
                    "type": "integer",
                    "description": "The ID of the user who created this suggestion (typically the submitting author).",
                    "readOnly": true
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "description": "The reviewer's full name (derived from `givenName` and `familyName`).",
                    "readOnly": true,
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "displayInitials": {
                    "description": "Initials derived from the suggested reviewer's name, used in the UI.",
                    "readOnly": true,
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "email": {
                    "type": "string"
                },
                "orcidId": {
                    "type": "string"
                },
                "affiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "suggestionReason": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "approvedAt": {
                    "type": "string",
                    "description": "The date the suggestion was approved by an editor (ISO 8601 date-time, or `null` if not approved)."
                },
                "existingUserId": {
                    "type": "integer",
                    "description": "If the suggested reviewer matches an existing user in the system, the user ID of that user.",
                    "readOnly": true
                },
                "hasExistingReviewerRole": {
                    "type": "boolean",
                    "description": "Whether the matching existing user already has a reviewer role in the current context.",
                    "readOnly": true
                },
                "reviewerId": {
                    "type": "integer",
                    "description": "The user ID assigned to review this submission once the suggestion has been accepted and a reviewer assignment has been created.",
                    "readOnly": true
                },
                "reviewer": {
                    "type": "object",
                    "description": "A reviewer-summary representation of the assigned reviewer. Only included when the request is sent with `include_reviewer_data=true` and `reviewerId` is set.",
                    "readOnly": true,
                    "$ref": "#\/definitions\/ReviewerSummary"
                }
            }
        },
        "ReviewRound": {
            "type": "object",
            "properties": {
                "authorResponse": {
                    "description": "The author response associated with this review round, if any.",
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "reviewRoundId": {
                            "type": "integer"
                        },
                        "response": {
                            "type": "string"
                        },
                        "submittedByUser": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "fullName": {
                                    "type": "string"
                                }
                            }
                        },
                        "associatedAuthors": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "fullName": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer"
                },
                "publicationId": {
                    "type": "integer"
                },
                "round": {
                    "type": "integer"
                },
                "stageId": {
                    "type": "integer"
                },
                "status": {
                    "type": "string",
                    "readOnly": true
                },
                "statusId": {
                    "type": "integer"
                }
            }
        },
        "ReviewerSummary": {
            "type": "object",
            "description": "A special representation of a User assigned to a reviewer group. This model presents specific details about review activity.",
            "properties": {
                "_href": {
                    "type": "string"
                },
                "affiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "averageReviewCompletionDays": {
                    "type": "integer"
                },
                "dateLastReviewAssignment": {
                    "type": "string"
                },
                "disabled": {
                    "type": "boolean"
                },
                "fullName": {
                    "type": "string"
                },
                "gossip": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/UserGroup"
                    }
                },
                "id": {
                    "type": "integer"
                },
                "interests": {
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/UserInterest"
                    }
                },
                "reviewsActive": {
                    "type": "integer"
                },
                "reviewsCompleted": {
                    "type": "integer"
                },
                "reviewsCancelled": {
                    "type": "integer"
                },
                "reviewsDeclined": {
                    "type": "integer"
                },
                "userName": {
                    "type": "string"
                }
            }
        },
        "Ror": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "displayLocale": {
                    "type": "string",
                    "description": "The display language on ror.org of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^((([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?)|(no_lang_code))$\/"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of this ROR record in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isActive": {
                    "type": "boolean",
                    "description": "Whether this institution is active or inactive.",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                }
            }
        },
        "Section": {
            "type": "object",
            "properties": {
                "abbrev": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "abstractsNotRequired": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "editorRestricted": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "hideAuthor": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "hideTitle": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "identifyType": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "isInactive": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "metaIndexed": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "metaReviewed": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "policy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewFormId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sequence": {
                    "type": "integer",
                    "apiSummary": true
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "wordCount": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "Site": {
            "type": "object",
            "properties": {
                "about": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "announcementsIntroduction": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "compressStatsLogs": {
                    "type": "boolean",
                    "description": "Whether or not to compress usage statistics log files after they have been processed and archived.",
                    "default": false
                },
                "contactEmail": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contactName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "counterR5StartDate": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "disableSharedReviewerStatistics": {
                    "type": "boolean",
                    "description": "Specify whether reviewer statistics can be shared with other contexts of the installation.",
                    "default": false
                },
                "enableAnnouncements": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableBulkEmails": {
                    "type": "array",
                    "description": "Which hosted journals, presses or preprint servers are allowed to send bulk emails.",
                    "items": {
                        "type": "integer"
                    }
                },
                "enableGeoUsageStats": {
                    "type": "string",
                    "description": "Whether to track usage statistics by location, and whether to track at the country, region or city level.",
                    "default": "disabled",
                    "validation": [
                        "in:disabled,country,country+region,country+region+city"
                    ],
                    "enum": [
                        "disabled",
                        "country",
                        "country+region",
                        "country+region+city"
                    ]
                },
                "enableInstitutionUsageStats": {
                    "type": "boolean",
                    "description": "Whether to track usage statistics by institutions. Requires institutional IP ranges to be configured.",
                    "default": false
                },
                "installedLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                        ]
                    }
                },
                "isSiteSushiPlatform": {
                    "type": "boolean",
                    "description": "Whether or not to designate the site as the platform in COUNTER SUSHI statistics. Set this to true when all of the contexts (journals, presses or servers) of this site are published, owned or operated by the same provider.",
                    "default": false
                },
                "isSushiApiPublic": {
                    "type": "boolean",
                    "description": "Whether or not the access to the COUNTER SUSHI statistics API is public. If false, only users with admin or manager roles can access the API.",
                    "default": true
                },
                "keepDailyUsageStats": {
                    "type": "boolean",
                    "description": "Whether to retain daily usage stats or consolidate monthly stats. Daily stats can quickly result in millions of database rows for large installs with lots of submissions.",
                    "default": false
                },
                "minPasswordLength": {
                    "type": "integer",
                    "validation": [
                        "min:4"
                    ]
                },
                "numAnnouncementsHomepage": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "orcidApiType": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "in:publicProduction,publicSandbox,memberProduction,memberSandbox"
                    ],
                    "enum": [
                        "publicProduction",
                        "publicSandbox",
                        "memberProduction",
                        "memberSandbox"
                    ]
                },
                "orcidClientId": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidClientSecret": {
                    "type": "string",
                    "default": "",
                    "encrypt": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidCustomRedirectBaseUrl": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "orcidEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether ORCID functionality is enabled",
                    "validation": [
                        "nullable"
                    ]
                },
                "pageFooter": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "pageHeaderTitleImage": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "passwordUncompromisedEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable password verification against compromised password databases"
                },
                "primaryLocale": {
                    "type": "string",
                    "validation": [
                        "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                    ]
                },
                "privacyStatement": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "rateLimitDecaySeconds": {
                    "type": "integer",
                    "default": 300,
                    "description": "Seconds until rate limit resets",
                    "validation": [
                        "nullable",
                        "min:60"
                    ]
                },
                "rateLimitEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable rate limiting for login and password reset"
                },
                "rateLimitMaxAttempts": {
                    "type": "integer",
                    "default": 5,
                    "description": "Maximum attempts before rate limiting is triggered",
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "redirectContextId": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "sidebar": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "alpha_dash"
                        ]
                    }
                },
                "styleSheet": {
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "dateUploaded": {
                            "type": "string"
                        }
                    }
                },
                "supportedLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                        ]
                    }
                },
                "sushiPlatformID": {
                    "type": "string",
                    "description": "The platform ID for COUNTER SUSHI statistics. Required when isSiteSushiPlatform is true.",
                    "validation": [
                        "regex:#^[a-zA-Z0-9._\/]{1,17}$#",
                        "nullable"
                    ]
                },
                "themePluginPath": {
                    "type": "string",
                    "default": "default"
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "uniqueSiteId": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "Submission": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "A URL to this object in the REST API.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "availableEditorialDecisions": {
                    "description": "The editorial decisions that are available for this stage.",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "stageId": {
                                "type": "integer"
                            },
                            "id": {
                                "type": "integer"
                            },
                            "label": {
                                "type": "string"
                            }
                        }
                    }
                },
                "commentsForTheEditors": {
                    "type": "string",
                    "description": "Optional. Comments from the submitting author to the editors. This is only available for submissions that have not yet been submitted. Once submitted, the message is converted to a discussion and you can not read or write to this property.",
                    "validation": [
                        "nullable"
                    ]
                },
                "contextId": {
                    "type": "integer",
                    "description": "The ID of the context this submission was created in.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "currentPublicationId": {
                    "type": "integer",
                    "description": "Which publication is the latest published version.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "dateLastActivity": {
                    "type": "string",
                    "description": "The last time activity was recorded related to this submission.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "dateSubmitted": {
                    "type": "string",
                    "description": "The date this submission was submitted.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "editorAssigned": {
                    "type": "boolean",
                    "description": "Whether deciding editor has been assigned to the submission.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "funders": {
                    "type": "array",
                    "description": "Optional metadata that contains an array of funders for this submission.",
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/Funder"
                    }
                },
                "id": {
                    "type": "integer",
                    "description": "The ID of this submission.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "issueToBePublished": {
                    "type": "object",
                    "properties": {
                        "id": {
                            "type": "integer"
                        },
                        "label": {
                            "type": "string"
                        }
                    },
                    "apiSummary": true
                },
                "lastModified": {
                    "type": "string",
                    "description": "The last time a modification was made to this submission or any of its associated objects.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "locale": {
                    "type": "string",
                    "description": "The primary language of this submission.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "metadataLocales": {
                    "type": "array",
                    "description": "The list of metadata locales in the form [locale code => locale name translated in UI locale].",
                    "readOnly": true,
                    "items": {
                        "type": "string"
                    }
                },
                "participants": {
                    "type": "array",
                    "description": "A list of users who are assigned to this submission (e.g. authors, editors, or other stage participants).",
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer",
                                "description": "User ID of the participant."
                            },
                            "fullName": {
                                "type": "string",
                                "description": "Participant's display name."
                            },
                            "canLoginAs": {
                                "type": "boolean",
                                "description": "Whether the current user can log in as this participant.",
                                "readOnly": true,
                                "apiSummary": true,
                                "apiDetail": true
                            }
                        }
                    }
                },
                "publications": {
                    "type": "array",
                    "description": "A list of publications that have been created for this submission.",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/Publication"
                    }
                },
                "recommendationsIn": {
                    "type": "boolean",
                    "description": "Whether all recommending editors have submitted a recommendation.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewAssignments": {
                    "type": "array",
                    "description": "Information about pending and completed review assignments.",
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "isCurrentUserAssigned": {
                                "type": "integer",
                                "readOnly": true
                            },
                            "dateAssigned": {
                                "type": "integer",
                                "validation": [
                                    "date|Y-m-d H:i:s"
                                ]
                            },
                            "competingInterests": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "status": {
                                "type": "integer",
                                "readOnly": true
                            },
                            "statusId": {
                                "type": "integer",
                                "readOnly": true
                            },
                            "statusLabel": {
                                "type": "integer",
                                "readOnly": true
                            },
                            "dateDue": {
                                "type": "integer",
                                "validation": [
                                    "date|Y-m-d H:i:s"
                                ]
                            },
                            "dateResponseDue": {
                                "type": "integer",
                                "validation": [
                                    "date|Y-m-d H:i:s"
                                ]
                            },
                            "round": {
                                "type": "integer"
                            },
                            "reviewerFullName": {
                                "type": "string",
                                "readOnly": true
                            },
                            "reviewerUserName": {
                                "type": "string",
                                "readOnly": true
                            },
                            "reviewRoundId": {
                                "type": "integer"
                            },
                            "reviewMethod": {
                                "type": "string",
                                "readOnly": true
                            },
                            "reviewerHasOrcid": {
                                "type": "boolean",
                                "readOnly": true
                            },
                            "canLoginAs": {
                                "type": "boolean",
                                "description": "Whether the current user can log in as this reviewer.",
                                "readOnly": true,
                                "apiSummary": true,
                                "apiDetail": true
                            },
                            "canGossip": {
                                "type": "boolean",
                                "description": "Whether the current user can access the gossip field for this reviewer.",
                                "readOnly": true,
                                "apiSummary": true,
                                "apiDetail": true
                            }
                        }
                    }
                },
                "reviewRounds": {
                    "type": "array",
                    "description": "A list of review rounds that have been opened for this submission.",
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/ReviewRound"
                    }
                },
                "reviewerSuggestions": {
                    "type": "array",
                    "description": "Information about suggested reviewers at the time of submission.",
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "familyName": {
                                "type": "string",
                                "multilingual": true,
                                "apiSummary": true
                            },
                            "givenName": {
                                "type": "string",
                                "multilingual": true,
                                "apiSummary": true
                            },
                            "fullName": {
                                "type": "string",
                                "multilingual": true,
                                "apiSummary": true
                            },
                            "email": {
                                "type": "string",
                                "apiSummary": true
                            },
                            "orcidId": {
                                "type": "string",
                                "apiSummary": true,
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "suggestionReason": {
                                "type": "string",
                                "multilingual": true,
                                "apiSummary": true
                            },
                            "affiliation": {
                                "type": "string",
                                "multilingual": true,
                                "apiSummary": true
                            },
                            "approvedAt": {
                                "type": "string",
                                "apiSummary": true,
                                "description": "The date the suggestion was approved as a reviewer.",
                                "validation": [
                                    "nullable",
                                    "date:Y-m-d H:i:s"
                                ]
                            },
                            "existingUserId": {
                                "type": "integer",
                                "apiSummary": true,
                                "description": "The existing user ID, if already present as a user.",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "hasExistingReviewerRole": {
                                "type": "boolean",
                                "apiSummary": true,
                                "description": "Whether the existing user already has a reviewer role when there is an existing user association."
                            },
                            "reviewerId": {
                                "type": "integer",
                                "apiSummary": true,
                                "description": "The existing user ID with reviewer role who has been mapped to this suggestion after the suggestion was made.",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    }
                },
                "reviewersNotAssigned": {
                    "type": "boolean",
                    "description": "Whether all needed reviewers are assigned to the submission. Related to the `numReviewsPerSubmission` context setting.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "revisionsRequested": {
                    "type": "boolean",
                    "description": "There is a revisions requested decision in the current review round and no revisions have been uploaded to that round.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "revisionsSubmitted": {
                    "type": "boolean",
                    "description": "There is a revisions requested decision in the current review round and 1 or more revision files have been uploaded to that round.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "scheduledIn": {
                    "type": "integer",
                    "description": "The submission status is `STATUS_SCHEDULED`. It shows the issue it is scheduled in.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "stageId": {
                    "type": "integer",
                    "description": "The stage of the editorial workflow that this submission is currently in. One of the `WORKFLOW_STAGE_ID_` constants. Default is `WORKFLOW_STAGE_ID_SUBMISSION`.",
                    "apiSummary": true,
                    "default": 1,
                    "writeDisabledInApi": true,
                    "validation": [
                        "min:1",
                        "max:5"
                    ]
                },
                "stages": {
                    "type": "array",
                    "description": "Key data about the status, files and discussions of each stage.",
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "label": {
                                "type": "string"
                            },
                            "isActiveStage": {
                                "type": "boolean"
                            },
                            "currentUserAssignedRoles": {
                                "type": "array",
                                "items": {
                                    "type": "integer"
                                }
                            },
                            "editorAssigned": {
                                "type": "boolean"
                            },
                            "isDecidingEditorAssigned": {
                                "type": "boolean"
                            },
                            "isCurrentUserDecidingEditor": {
                                "type": "boolean"
                            },
                            "currentUserCanRecommendOnly": {
                                "type": "boolean"
                            },
                            "currentUserRecommendation": {
                                "type": "object",
                                "properties": {
                                    "decision": {
                                        "type": "integer"
                                    },
                                    "label": {
                                        "type": "string"
                                    }
                                }
                            },
                            "recommendations": {
                                "type": "array",
                                "properties": {
                                    "decision": {
                                        "type": "integer"
                                    },
                                    "label": {
                                        "type": "string"
                                    }
                                }
                            },
                            "uploadedFilesCount": {
                                "type": "integer",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "returnStageId": {
                                "type": "integer",
                                "description": "Only present for the Done stage entry: the stage the submission occupied immediately before entering Done.",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    }
                },
                "status": {
                    "type": "integer",
                    "description": "Whether the submission is Published, Declined, Scheduled or Queued (still in the workflow). One of the `PKPSubmission::STATUS_*` constants. Default is `PKPSubmission::STATUS_QUEUED`.",
                    "apiSummary": true,
                    "default": 1,
                    "writeDisabledInApi": true,
                    "validation": [
                        "in:1,2,3,4,5"
                    ],
                    "enum": [
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                },
                "statusLabel": {
                    "type": "string",
                    "description": "A human-readable version of the submission's status. It will be Published, Declined, Queued (still in the workflow) or Scheduled.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "submissionProgress": {
                    "type": "string",
                    "description": "This value tracks the submission's progress in the submission wizard. It will be set to `start` or the current step when a submission is in progress. After it is submitted, this will be an empty string, indicating it is ready for an editor's consideration.",
                    "apiSummary": true,
                    "default": "start",
                    "writeDisabledInApi": true,
                    "validation": [
                        "in:,start,details,files,contributors,editors,review"
                    ],
                    "enum": [
                        "",
                        "start",
                        "details",
                        "files",
                        "contributors",
                        "editors",
                        "review"
                    ]
                },
                "urlAuthorWorkflow": {
                    "type": "string",
                    "description": "A URL to this submission for the author's editorial workflow.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlEditorialWorkflow": {
                    "type": "string",
                    "description": "A URL to this submission for the editors' and assistants' editorial workflow.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlPublished": {
                    "type": "string",
                    "description": "A URL to view the published version of this submission. If it is not published, the URL will point to the location where it will be published in the future.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlSubmissionWizard": {
                    "type": "string",
                    "description": "A URL to the submission wizard for this submission. The submission wizard can not be accessed after a submission has been submitted.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlWorkflow": {
                    "type": "string",
                    "description": "A URL to this submission for the workflow most appropriate for the current user. It will match the `urlAuthorWorkflow` or `urlEditorialWorkflow`, depending on what roles the user is assigned.",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "SubmissionFile": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocId": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "Used with `assocType` to associate this file with an object such as a galley.",
                    "validation": [
                        "nullable"
                    ]
                },
                "assocType": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "Used with `assocId` to associate this file with an object such as a galley. One of the following constants: `ASSOC_TYPE_SUBMISSION_FILE` (dependent files), `ASSOC_TYPE_REVIEW_ASSIGNMENT` (files uploaded by a reviewer), `ASSOC_TYPE_NOTE` (files uploaded with a discussion), `ASSOC_TYPE_REPRESENTATION` (files uploaded to a galley or publication format), `ASSOC_TYPE_REVIEW_ROUND` (review files and revisions for a particular review round).",
                    "validation": [
                        "in:515,517,520,521,523,1048588"
                    ],
                    "enum": [
                        515,
                        517,
                        520,
                        521,
                        523,
                        1048588
                    ]
                },
                "caption": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "A caption for this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "copyrightOwner": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The copyright owner of this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "createdAt": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The date this submission file object was created in the system. Set automatically by the software.",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "creator": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "credit": {
                    "type": "string",
                    "description": "An attribution for this file, such as a photographer's name. Used with artwork such as images.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "dateCreated": {
                    "type": "string",
                    "description": "Public metadata about when this content was created. Used with supplementary files.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "dependentFiles": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Any dependent files, typically images or audio files that are loaded by an HTML file.",
                    "items": {
                        "$ref": "#\/definitions\/SubmissionFile"
                    }
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "documentType": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "fileId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "fileStage": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "in:2,3,4,5,6,7,8,9,10,11,13,15,17,18,19,20,21,22,23"
                    ],
                    "enum": [
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        13,
                        15,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23
                    ]
                },
                "genreId": {
                    "type": "integer",
                    "description": "The genre ID of this file",
                    "apiSummary": true
                },
                "genreIsDependent": {
                    "type": "boolean",
                    "description": "Whether or not this is a dependent file, such as images displayed by an HTML file, that are displayed with published content.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreIsSupplementary": {
                    "type": "boolean",
                    "description": "Whether or not this is a supplementary file, such as data sets and research materials, that are displayed separately from the main publication files.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreMetadataType": {
                    "type": "string",
                    "description": "One of Genre::GENRE_CATEGORY_*",
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreName": {
                    "type": "string",
                    "description": "The genre name of this file, such as Article Text or Data Set.",
                    "isMultilingual": true,
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreSupportsFileVariants": {
                    "type": "boolean",
                    "description": "Whether submission file genre supports file variants types, e.g. 'web' or 'high resolution'",
                    "apiSummary": true,
                    "readOnly": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "language": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The language of this file if it contains text. Used with supplementary files.",
                    "validation": [
                        "nullable"
                    ]
                },
                "locale": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The primary locale of the submission this file is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "readOnly": true
                },
                "mimetype": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "path": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "publisher": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "revisions": {
                    "type": "array",
                    "readOnly": true,
                    "description": "Previous versions of this file.",
                    "items": {
                        "type": "object",
                        "properties": {
                            "documentType": {
                                "type": "string"
                            },
                            "fileId": {
                                "type": "integer"
                            },
                            "mimetype": {
                                "type": "string"
                            },
                            "path": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            }
                        }
                    }
                },
                "source": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sourceSubmissionFileId": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "When a submission file is promoted from one stage to another, this property identifies the source file from which this file was promoted. Default: `null`."
                },
                "sponsor": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subject": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "summaryOfChanges": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "Free-text summary of what changed in this revision. Shown on Review Revision uploads only.",
                    "validation": [
                        "nullable"
                    ]
                },
                "terms": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "Licensing terms for this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "updatedAt": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "When this object was last updated.",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "uploaderUserId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "uploaderUserName": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "url": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "variantGroupId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "variantType": {
                    "type": "string",
                    "description": "One of the MediaVariantType enums.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "viewable": {
                    "type": "boolean",
                    "apiSummary": true
                }
            }
        },
        "TaskParticipant": {
            "type": "object",
            "description": "A user assigned to a task or discussion.",
            "properties": {
                "fullName": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "isResponsible": {
                    "type": "boolean"
                },
                "roles": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "reviews": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "reviewId": {
                                            "type": "integer"
                                        },
                                        "reviewRound": {
                                            "type": "integer"
                                        },
                                        "reviewMethod": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "ThemeOptions": {
            "type": "object",
            "description": "A theme with values for any of its theme options. The theme is provided in the `themePluginPath` key. Other keys may or may not exist depending on what options have been defined by that theme.",
            "properties": {
                "themePluginPath": {
                    "type": "string"
                },
                "...": {
                    "type": "string"
                }
            }
        },
        "TimelineInterval": {
            "type": "object",
            "properties": {
                "date": {
                    "type": "string",
                    "description": "A machine-readable date in the format `YYYY-MM-DD` or `YYYY-MM`."
                },
                "label": {
                    "type": "string",
                    "description": "A human-readable format of the date, based on the context's configured date formats."
                },
                "value": {
                    "type": "integer",
                    "description": "The total for this day or month."
                }
            }
        },
        "User": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "affiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "apiKeyEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "authStr": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "billingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "canLoginAs": {
                    "type": "boolean",
                    "description": "Whether the current user can log in as this user.",
                    "readOnly": true,
                    "apiSummary": true,
                    "apiDetail": true
                },
                "canMergeUsers": {
                    "type": "boolean",
                    "description": "Whether the current user can merge this user account with another.",
                    "readOnly": true,
                    "apiSummary": true,
                    "apiDetail": true
                },
                "country": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "dateLastEmail": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "dateLastLogin": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "dateRegistered": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "dateValidated": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "disabled": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "disabledReason": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "displayInitials": {
                    "description": "The initials that will be displayed for a user.",
                    "type": "string",
                    "apiSummary": true
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "gossip": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "groups": {
                    "type": "array",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/UserGroup"
                    }
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "inlineHelp": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "interests": {
                    "type": "array",
                    "readOnly": true,
                    "apiSummary": true,
                    "items": {
                        "$ref": "#\/definitions\/UserInterest"
                    }
                },
                "locales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                        ]
                    }
                },
                "mailingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "mustChangePassword": {
                    "type": "boolean"
                },
                "orcid": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "orcid",
                        "nullable"
                    ]
                },
                "orcidAccessExpiresOn": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidDisplayValue": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "phone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "preferredAvatarInitials": {
                    "type": "string",
                    "description": "An optional field for users to specify the initials that they want to be displayed in their avatars.",
                    "multilingual": false,
                    "apiSummary": false,
                    "validation": [
                        "nullable",
                        "max:2"
                    ]
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "profileImage": {
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "dateUploaded": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "height": {
                            "type": "integer"
                        },
                        "width": {
                            "type": "integer"
                        }
                    }
                },
                "signature": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "stageAssignments": {
                    "apiSummary": true,
                    "readOnly": true,
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "stageAssignmentId": {
                                "type": "integer"
                            },
                            "stageAssignmentUserGroup": {
                                "type": "object",
                                "$ref": "#\/definitions\/UserGroup"
                            },
                            "stageAssignmentStageId": {
                                "type": "integer"
                            },
                            "stageAssignmentStage": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "label": {
                                        "type": "string"
                                    }
                                }
                            },
                            "canChangeMetadata": {
                                "type": "boolean"
                            },
                            "recommendOnly": {
                                "type": "boolean"
                            }
                        }
                    }
                },
                "url": {
                    "type": "string",
                    "validation": [
                        "url",
                        "nullable"
                    ]
                },
                "userName": {
                    "type": "string",
                    "apiSummary": true
                }
            }
        },
        "UserGroup": {
            "type": "object",
            "properties": {
                "abbrev": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "abbrevLocaleKey": {
                    "type": "string",
                    "origin": "setting",
                    "description": "The locale key of the group abbreviation.",
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true
                },
                "isDefault": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "masthead": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "nameLocaleKey": {
                    "type": "string",
                    "origin": "setting",
                    "description": "The locale key of the group name.",
                    "apiSummary": true
                },
                "namePlural": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "permitMetadataEdit": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "permitSelfRegistration": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "permitSettings": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "recommendOnly": {
                    "type": "boolean",
                    "origin": "setting"
                },
                "roleId": {
                    "type": "integer",
                    "origin": "primary",
                    "validation": [
                        "in:16,1,17,65536,4096,4097,1048576,209715"
                    ],
                    "enum": [
                        16,
                        1,
                        17,
                        65536,
                        4096,
                        4097,
                        1048576,
                        209715
                    ]
                }
            }
        },
        "UserInterest": {
            "type": "object",
            "description": "A user's review interests.",
            "properties": {
                "id": {
                    "type": "integer"
                },
                "interest": {
                    "type": "string"
                }
            }
        },
        "Category": {
            "type": "object",
            "properties": {
                "assignedEditors": {
                    "description": "List of editors automatically assigned to this category.",
                    "readOnly": true,
                    "apiSummary": true,
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "editorDisplayInitials": {
                                "type": "string"
                            },
                            "userGroupIds": {
                                "description": "The IDs of the user groups for which the editor is assigned.",
                                "type": "array"
                            }
                        }
                    }
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "image": {
                    "type": "object",
                    "properties": {
                        "temporaryFileId": {
                            "type": "integer",
                            "readOnly": true
                        },
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "thumbnailName": {
                            "type": "string"
                        },
                        "thumbnailWidth": {
                            "type": "integer"
                        },
                        "thumbnailHeight": {
                            "type": "integer"
                        },
                        "dateUploaded": {
                            "type": "string"
                        },
                        "altText": {
                            "type": "string",
                            "validation": [
                                "nullable"
                            ]
                        }
                    }
                },
                "localizedTitle": {
                    "type": "string",
                    "description": "The localized title of the category.",
                    "apiSummary": true,
                    "readOnly": true,
                    "writeDisabledInApi": true
                },
                "parentId": {
                    "type": "integer",
                    "description": "The optional ID of the parent category.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "path": {
                    "type": "string",
                    "description": "A URL slug for this category.",
                    "apiSummary": true
                },
                "sortOption": {
                    "type": "string",
                    "description": "The sorting order for contents of this category.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "subCategories": {
                    "description": "List of sub categories that belongs to this category",
                    "apiSummary": false,
                    "readOnly": true,
                    "type": "array",
                    "items": {
                        "$ref": "#\/definitions\/Category"
                    }
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "VersionStage": {
            "type": "string",
            "enum": [
                "AO",
                "PMUR",
                "VoR"
            ],
            "description": "Enum for version stages: AO (Author's Original), PMUR (Published Manuscript Under Review), VoR (Version of Record)"
        },
        "PublicationVersionInfo": {
            "type": "object",
            "description": "Information about the next available version for a publication.",
            "properties": {
                "versionStage": {
                    "type": "string",
                    "description": "The code of the version stage (e.g., AO, PMUR, VoR)."
                },
                "versionStageLabelKey": {
                    "type": "string",
                    "description": "Translation key for the version stage label."
                },
                "majorNumbering": {
                    "type": "integer",
                    "description": "Major version number."
                },
                "minorNumbering": {
                    "type": "integer",
                    "description": "Minor version number."
                },
                "versionDisplay": {
                    "type": "string",
                    "description": "Human-readable version string (e.g., Version or Record 2.1)."
                }
            }
        },
        "UserComment": {
            "type": "object",
            "description": "Information about a public user comment.",
            "properties": {
                "id": {
                    "type": "integer",
                    "description": "Unique identifier for the comment."
                },
                "contextId": {
                    "type": "integer",
                    "description": "The ID of the context the comment belongs to."
                },
                "commentText": {
                    "type": "string",
                    "description": "The content of the comment."
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Timestamp when the comment was created."
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Timestamp when the comment was last updated."
                },
                "isApproved": {
                    "type": "boolean",
                    "description": "Whether the comment has been approved by a moderator."
                },
                "isReported": {
                    "type": "boolean",
                    "description": "Whether the comment has been reported by users."
                },
                "publicationId": {
                    "type": "integer",
                    "description": "The publication ID the comment is associated with."
                },
                "userId": {
                    "type": "integer",
                    "description": "The ID of the user who submitted the comment."
                },
                "userName": {
                    "type": "string",
                    "description": "Full name of the user who submitted the comment."
                },
                "userOrcidDisplayValue": {
                    "type": "string",
                    "nullable": true,
                    "description": "The user's ORCID identifier."
                },
                "isUserOrcidAuthenticated": {
                    "type": "boolean",
                    "description": "Whether the user has verified their ORCID."
                },
                "userAffiliation": {
                    "type": "string",
                    "nullable": true,
                    "description": "The user's institutional affiliation."
                },
                "userDisplayInitials": {
                    "type": "string",
                    "description": "Initials to display for the user."
                },
                "publication": {
                    "type": "object",
                    "description": "Details of the publication the comment is associated with.",
                    "properties": {
                        "authorsStringShort": {
                            "type": "string",
                            "description": "Short string of authors for the publication."
                        },
                        "id": {
                            "type": "integer",
                            "description": "Publication ID."
                        },
                        "submissionId": {
                            "type": "integer",
                            "description": "Submission ID the publication belongs to."
                        },
                        "fullTitle": {
                            "type": "string",
                            "description": "Full localized title of the publication."
                        }
                    }
                },
                "approvedAt": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true,
                    "description": "Timestamp when the comment was approved. Only available to moderators."
                },
                "approvedByUserName": {
                    "type": "string",
                    "nullable": true,
                    "description": "Name of the moderator who approved the comment. Only available to moderators."
                },
                "reports": {
                    "type": "array",
                    "description": "Reports associated with the comment. Only included when `includeReports` query param is present in the request.",
                    "nullable": true,
                    "items": {
                        "$ref": "#\/definitions\/UserCommentReport"
                    }
                }
            }
        },
        "UserCommentReport": {
            "type": "object",
            "description": "A report submitted for a user comment.",
            "properties": {
                "id": {
                    "type": "integer",
                    "description": "Unique identifier for the report."
                },
                "userCommentId": {
                    "type": "integer",
                    "description": "ID of the comment being reported."
                },
                "userId": {
                    "type": "integer",
                    "description": "ID of the user who submitted the report."
                },
                "userName": {
                    "type": "string",
                    "description": "Full name of the reporting user."
                },
                "userOrcidDisplayValue": {
                    "type": "string",
                    "nullable": true,
                    "description": "The user's ORCID identifier."
                },
                "note": {
                    "type": "string",
                    "nullable": false,
                    "description": "The reason provided by the user for reporting the comment."
                },
                "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Timestamp when the report was created."
                },
                "updatedAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "Timestamp when the report was last updated."
                },
                "isUserOrcidAuthenticated": {
                    "type": "boolean",
                    "description": "Whether the user has verified their ORCID."
                },
                "userAffiliation": {
                    "type": "string",
                    "nullable": true,
                    "description": "The reporting user's institutional affiliation."
                }
            }
        },
        "AffiliationEditable": {
            "type": "object",
            "properties": {
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                }
            }
        },
        "AffiliationSummary": {
            "type": "object",
            "properties": {
                "authorId": {
                    "type": "integer",
                    "description": "The author with which this affiliation is associated.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of an affiliation in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                },
                "rorObject": {
                    "type": "object",
                    "description": "An object representing the ROR for this affiliation.",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Ror",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the ROR for this affiliation.",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Ror"
                    }
                }
            }
        },
        "AnnouncementEditable": {
            "type": "object",
            "properties": {
                "assocId": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The journal, press or preprint server ID. Null for site-level announcements.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "assocType": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The assoc object. This should always be `ASSOC_TYPE_JOURNAL` (OJS), `ASSOC_TYPE_PRESS` (OMP) or `ASSOC_TYPE_SERVER` (OPS).",
                    "apiSummary": true
                },
                "dateExpire": {
                    "type": "string",
                    "origin": "primary",
                    "description": "(Optional) The date that this announcement expires, if one is set. This is typically used to express closing dates for calls for papers.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "descriptionShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "image": {
                    "type": "object",
                    "origin": "setting",
                    "description": "The image to show with this announcement.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "temporaryFileId": {
                            "type": "integer",
                            "writeOnly": true
                        },
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "dateUploaded": {
                            "type": "string"
                        },
                        "altText": {
                            "type": "string"
                        }
                    }
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "typeId": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "(Optional) One of the announcement type IDs.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "AnnouncementSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "origin": "composed",
                    "description": "The URL to this announcement in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocId": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The journal, press or preprint server ID. Null for site-level announcements.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "assocType": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The assoc object. This should always be `ASSOC_TYPE_JOURNAL` (OJS), `ASSOC_TYPE_PRESS` (OMP) or `ASSOC_TYPE_SERVER` (OPS).",
                    "apiSummary": true
                },
                "dateExpire": {
                    "type": "string",
                    "origin": "primary",
                    "description": "(Optional) The date that this announcement expires, if one is set. This is typically used to express closing dates for calls for papers.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "datePosted": {
                    "type": "string",
                    "origin": "primary",
                    "description": "The date this announcement was posted.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "descriptionShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "readOnly": true,
                    "apiSummary": true
                },
                "image": {
                    "type": "object",
                    "origin": "setting",
                    "description": "The image to show with this announcement.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": []
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "typeId": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "(Optional) One of the announcement type IDs.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "url": {
                    "type": "string",
                    "origin": "composed",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true,
                    "description": "The URL to the published announcement."
                }
            }
        },
        "AuthorEditable": {
            "type": "object",
            "properties": {
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "competingInterests": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contributorType": {
                    "type": "string",
                    "description": "The name of this contributor's type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "country": {
                    "type": "string",
                    "description": "The author's country in a two-letter code (ISO 3166-1). See [all codes](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements).",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "country",
                        "regex:\/^[A-Z]{2}$\/"
                    ]
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost",
                        "nullable"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "includeInBrowse": {
                    "type": "boolean",
                    "description": "Whether or not to include this contributor in author lists when the publication appears in search results, tables of content and catalog entries.",
                    "default": true,
                    "apiSummary": true
                },
                "orcid": {
                    "type": "string",
                    "description": "The ORCID of this contributor. See: https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/orcid.org\/",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "orcid"
                    ]
                },
                "orcidAccessDenied": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessExpiresOn": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessScope": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidEmailToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidRefreshToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidSandbox": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidVerificationRequested": {
                    "type": "boolean",
                    "apiSummary": false
                },
                "orcidWorkPutCode": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "organizationName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "rorId": {
                    "type": "string",
                    "description": "The ROR ID for ORGANIZATION contributor type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The order in which this contributor should appear in a list of contributors.",
                    "apiSummary": true
                },
                "url": {
                    "type": "string",
                    "description": "An optional URL to this contributor's webpage.",
                    "validation": [
                        "url",
                        "nullable"
                    ]
                }
            }
        },
        "AuthorSummary": {
            "type": "object",
            "properties": {
                "affiliations": {
                    "type": "array",
                    "description": "The scholarly institution this contributor is employed by or affiliated with.",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/Affiliation"
                    }
                },
                "contributorRoles": {
                    "type": "array",
                    "description": "The names of this contributor's roles in the publication, such as 'Author' or 'Translator', and the translations",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/ContributorRole"
                    },
                    "validation": [
                        "min:1",
                        "nullable"
                    ]
                },
                "contributorType": {
                    "type": "string",
                    "description": "The name of this contributor's type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "country": {
                    "type": "string",
                    "description": "The author's country in a two-letter code (ISO 3166-1). See [all codes](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements).",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "country",
                        "regex:\/^[A-Z]{2}$\/"
                    ]
                },
                "creditRoles": {
                    "type": "array",
                    "description": "CRediT Roles",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "role": {
                                "type": "string",
                                "validation": [
                                    "url"
                                ]
                            },
                            "degree": {
                                "type": "string"
                            }
                        }
                    },
                    "validation": [
                        "nullable"
                    ]
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost",
                        "nullable"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "type": "string",
                    "description": "The full name of the author. This will be the preferredPublicName or, if that is not available, a string containing the givenName and familyName, or organization name, or anonymous",
                    "apiSummary": true,
                    "readOnly": true
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "includeInBrowse": {
                    "type": "boolean",
                    "description": "Whether or not to include this contributor in author lists when the publication appears in search results, tables of content and catalog entries.",
                    "default": true,
                    "apiSummary": true
                },
                "orcid": {
                    "type": "string",
                    "description": "The ORCID of this contributor. See: https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/orcid.org\/",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "orcid"
                    ]
                },
                "orcidDisplayValue": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "organizationName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "rorId": {
                    "type": "string",
                    "description": "The ROR ID for ORGANIZATION contributor type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The order in which this contributor should appear in a list of contributors.",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The primary locale of the submission this author is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "ContextEditable": {
            "type": "object",
            "properties": {
                "abbreviation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "about": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "acronym": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "additionalHomeContent": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "agencies": {
                    "type": "string",
                    "description": "Enable agencies metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "announcementsIntroduction": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "authorGuidelines": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "authorInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "automaticDoiDeposit": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "beginSubmissionHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "citations": {
                    "type": "string",
                    "description": "Enable citations metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "default": "request",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "citationsMetadataLookup": {
                    "type": "boolean",
                    "description": "Enable metadata lookup by default for new submissions.",
                    "validation": [
                        "nullable"
                    ]
                },
                "clockssLicense": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "competingInterests": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contactAffiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contactEmail": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "contactName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "contactPhone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "contributorsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copySubmissionAckAddress": {
                    "type": "string",
                    "default": "",
                    "description": "A copy of the submission acknowledgement email will be sent to any of the email addresses entered here. Separate multiple email addresses with a comma. Example: one@example.com,two@example.com",
                    "validation": [
                        "nullable"
                    ]
                },
                "copySubmissionAckPrimaryContact": {
                    "type": "boolean",
                    "default": false,
                    "description": "A copy of the submission acknowledgement email will be sent to this context's primary contact when true.",
                    "validation": [
                        "nullable"
                    ]
                },
                "copyrightHolderOther": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copyrightHolderType": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "in:author,context,other"
                    ],
                    "enum": [
                        "author",
                        "context",
                        "other"
                    ]
                },
                "copyrightNotice": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copyrightYearBasis": {
                    "type": "string",
                    "default": "issue",
                    "validation": [
                        "in:issue,submission"
                    ],
                    "enum": [
                        "issue",
                        "submission"
                    ]
                },
                "country": {
                    "type": "string",
                    "validation": [
                        "country"
                    ]
                },
                "coverage": {
                    "type": "string",
                    "description": "Enable coverage metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "currency": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "currency"
                    ]
                },
                "currentIssueId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "customHeaders": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dataAvailability": {
                    "type": "string",
                    "description": "Whether to not request, request or require a Data Availability Statement from the authors.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "dataCitations": {
                    "type": "string",
                    "description": "Enable data citations metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "dateFormatLong": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dateFormatShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "datetimeFormatLong": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "datetimeFormatShort": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "defaultMetricType": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "defaultReviewMode": {
                    "type": "integer",
                    "default": 2,
                    "validation": [
                        "nullable",
                        "in:1,2,3"
                    ],
                    "enum": [
                        1,
                        2,
                        3
                    ]
                },
                "defaultReviewPublicVisibility": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "delayedOpenAccessDuration": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "delayedOpenAccessPolicy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "detailsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "disableBulkEmailUserGroups": {
                    "type": "array",
                    "description": "User groups that a manager will be prevented from sending bulk email to using the notify feature. Only the admin may edit this property.",
                    "items": {
                        "type": "integer"
                    }
                },
                "disableSubmissions": {
                    "type": "boolean",
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "disableUserReg": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "disciplines": {
                    "type": "string",
                    "description": "Enable disciplines metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "doiCreationTime": {
                    "type": "string",
                    "default": "copyEditCreationTime"
                },
                "doiIssueSuffixPattern": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "doiPrefix": {
                    "type": "string",
                    "validation": [
                        "regex:\/^10\\.[0-9]{4,7}$\/",
                        "nullable"
                    ]
                },
                "doiPublicationSuffixPattern": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "doiRepresentationSuffixPattern": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "doiSuffixType": {
                    "type": "string",
                    "default": "default"
                },
                "doiVersioning": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether each publication version should receive a unique DOI"
                },
                "editorialHistory": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "editorialStatsEmail": {
                    "type": "boolean",
                    "description": "Whether or not to send the monthly editorial statistics email to editors. Default: `true`",
                    "default": true
                },
                "emailSignature": {
                    "type": "string",
                    "defaultLocaleKey": "default.contextSettings.emailSignature",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableAnnouncements": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableArticleNumber": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableClockss": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableDois": {
                    "type": "boolean",
                    "default": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "enableEnrollmentMasthead": {
                    "type": "boolean",
                    "default": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "enableEnrollmentMastheadReviewers": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableGeoUsageStats": {
                    "type": "string",
                    "description": "Whether to track usage statistics by location, and whether to track at the country, region or city level.",
                    "default": "disabled",
                    "validation": [
                        "in:disabled,country,country+region,country+region+city"
                    ],
                    "enum": [
                        "disabled",
                        "country",
                        "country+region",
                        "country+region+city"
                    ]
                },
                "enableInstitutionUsageStats": {
                    "type": "boolean",
                    "description": "Whether to track usage statistics by institutions. Requires institutional IP ranges to be configured.",
                    "default": false
                },
                "enableLockss": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableOai": {
                    "type": "boolean",
                    "default": 1,
                    "validation": [
                        "nullable"
                    ]
                },
                "enableOpenAccessNotification": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enablePublicComments": {
                    "type": "boolean",
                    "description": "Whether or not the public commenting feature should be enabled.",
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "enablePublisherId": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "in:publication,galley,issue,issueGalley"
                        ]
                    }
                },
                "enableSubscriptionOnlinePaymentNotificationPurchaseIndividual": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableSubscriptionOnlinePaymentNotificationPurchaseInstitutional": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableSubscriptionOnlinePaymentNotificationRenewIndividual": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableSubscriptionOnlinePaymentNotificationRenewInstitutional": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enabled": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "enabledDoiTypes": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "in:publication,representation,issue,peerReview,authorResponse"
                        ]
                    },
                    "default": [
                        "publication"
                    ]
                },
                "envelopeSender": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "favicon": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "forTheEditorsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "funderGrantValidation": {
                    "type": "boolean",
                    "description": "Enable funder grant validation.",
                    "validation": [
                        "nullable"
                    ]
                },
                "funders": {
                    "type": "string",
                    "description": "Enable funding metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a funders during submission. `require` will require that the author enter funders during submission.",
                    "default": "request",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "fundingStatement": {
                    "type": "string",
                    "description": "Whether to not request, request or require a Funding Statement from the authors.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "homepageImage": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "isSushiApiPublic": {
                    "type": "boolean",
                    "description": "Whether or not the access to the COUNTER SUSHI statistics API is public. If false, only users with admin or manager roles can access the API.",
                    "default": true
                },
                "itemsPerPage": {
                    "type": "integer",
                    "default": 25,
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "ithenticateWebhookId": {
                    "type": "string",
                    "description": "The iThenticate service webook id that return back after successful webhook registration",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateWebhookSigningSecret": {
                    "type": "string",
                    "description": "The iThenticate service webook registration signing secret",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "journalThumbnail": {
                    "type": "object",
                    "multilingual": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string",
                                    "validation": [
                                        "date_format:Y-m-d H:i:s"
                                    ]
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string",
                                    "validation": [
                                        "date_format:Y-m-d H:i:s"
                                    ]
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "keywords": {
                    "type": "string",
                    "default": "request",
                    "description": "Enable keywords metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "librarianInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "licenseTerms": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "licenseUrl": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "lockssLicense": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "mailingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "mastheadUserGroupIds": {
                    "type": "array",
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "integer"
                    }
                },
                "membershipFee": {
                    "type": "number",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "membershipFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "membershipFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "notifyAllAuthors": {
                    "type": "boolean",
                    "default": true,
                    "description": "When enabled, all authors of a submission will receive a notification when an editorial decision is made regarding a submission. When disabled, only authors assigned to the submission will be notified.",
                    "validation": [
                        "nullable"
                    ]
                },
                "numAnnouncementsHomepage": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysAfterReviewResponseReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysAfterReviewSubmitReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysBeforeReviewResponseReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numDaysBeforeReviewSubmitReminderDue": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numMonthsAfterSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numMonthsBeforeSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numPageLinks": {
                    "type": "integer",
                    "default": 10,
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "numReviewsPerSubmission": {
                    "type": "integer",
                    "default": 0,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numWeeksAfterSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numWeeksBeforeSubscriptionExpiryReminder": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "numWeeksPerResponse": {
                    "type": "integer",
                    "default": 4,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "numWeeksPerReview": {
                    "type": "integer",
                    "default": 4,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "onlineIssn": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "openAccessPolicy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "orcidApiType": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "in:publicProduction,publicSandbox,memberProduction,memberSandbox"
                    ],
                    "enum": [
                        "publicProduction",
                        "publicSandbox",
                        "memberProduction",
                        "memberSandbox"
                    ]
                },
                "orcidCity": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidClientId": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidClientSecret": {
                    "type": "string",
                    "default": "",
                    "encrypt": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether ORCID functionality is enabled",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidLogLevel": {
                    "type": "string",
                    "default": "ERROR",
                    "validation": [
                        "in:ERROR,INFO"
                    ],
                    "enum": [
                        "ERROR",
                        "INFO"
                    ]
                },
                "orcidSendMailToAuthorsOnPublication": {
                    "type": "boolean",
                    "default": false
                },
                "pageFooter": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "pageHeaderLogoImage": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "paymentPluginName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "paymentsEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "plainLanguageSummary": {
                    "type": "string",
                    "description": "Enable plain language summary metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "primaryLocale": {
                    "type": "string",
                    "validation": [
                        "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                    ]
                },
                "printIssn": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "issn"
                    ]
                },
                "privacyStatement": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationFee": {
                    "type": "number",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "publicationFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publisherInstitution": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "publisherUrl": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "publishingMode": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "in:0,1,2"
                    ],
                    "enum": [
                        0,
                        1,
                        2
                    ]
                },
                "purchaseArticleFee": {
                    "type": "number",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "purchaseArticleFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "purchaseArticleFeeEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "purchaseArticleFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "purchaseIssueFee": {
                    "type": "number",
                    "validation": [
                        "nullable"
                    ]
                },
                "purchaseIssueFeeEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "rateReviewerOnQuality": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "readerInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "registrationAgency": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "requireAuthorCompetingInterests": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictArticleAccess": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictOnlyPdf": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictReviewerFileAccess": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "restrictSiteAccess": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewGuidelines": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewerAccessKeysEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerSuggestionEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerSuggestionsHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "rights": {
                    "type": "string",
                    "description": "Enable rights metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "searchDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "seq": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "min:0"
                    ]
                },
                "showEnsuringLink": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "sidebar": {
                    "type": "array",
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "string",
                        "validation": [
                            "alpha_dash"
                        ]
                    }
                },
                "source": {
                    "type": "string",
                    "description": "Enable source metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "styleSheet": {
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "temporaryFileId": {
                            "type": "integer",
                            "writeOnly": true
                        },
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "dateUploaded": {
                            "type": "string"
                        }
                    }
                },
                "subjects": {
                    "type": "string",
                    "description": "Enable subjects metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "submissionAcknowledgement": {
                    "type": "string",
                    "description": "Which authors should receive an email confirmation when a new submission is submitted, which acknowledges that their submission was submitted. When empty, the author will not be sent an email. Default: `allAuthors`",
                    "default": "allAuthors",
                    "validation": [
                        "nullable",
                        "in:,submittingAuthor,allAuthors"
                    ],
                    "enum": [
                        "",
                        "submittingAuthor",
                        "allAuthors"
                    ]
                },
                "submissionChecklist": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionFee": {
                    "type": "number",
                    "validation": [
                        "nullable"
                    ]
                },
                "submissionFeeDescription": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionFeeName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submitWithCategories": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether or not submitting authors should be asked to select categories when they make a new submission."
                },
                "subscriptionAdditionalInformation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subscriptionEmail": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "subscriptionExpiryPartial": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "subscriptionMailingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "subscriptionName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "subscriptionPhone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "supportEmail": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "email_or_localhost"
                    ]
                },
                "supportName": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "supportPhone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "supportedAddedSubmissionLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedDefaultSubmissionLocale": {
                    "type": "string",
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "supportedFormLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedSubmissionLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "supportedSubmissionMetadataLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                        ]
                    }
                },
                "themePluginPath": {
                    "type": "string",
                    "default": "default"
                },
                "timeFormat": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "type": {
                    "type": "string",
                    "description": "Enable types metadata. `0` is disabled. `enable` will make it available in the workflow. `request` will allow an author to enter a value during submission. `require` will require that the author enter a value during submission.",
                    "validation": [
                        "nullable",
                        "in:0,enable,request,require"
                    ],
                    "enum": [
                        "0",
                        "enable",
                        "request",
                        "require"
                    ]
                },
                "uploadFilesHelp": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "urlPath": {
                    "type": "string",
                    "validation": [
                        "regex:\/^[a-zA-Z0-9]+([\\-_][a-zA-Z0-9]+)*$\/"
                    ],
                    "apiSummary": true
                }
            }
        },
        "ContextSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "abbreviation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "acronym": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "currentIssueId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "enabled": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "journalThumbnail": {
                    "type": "object",
                    "multilingual": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": []
                        },
                        "fr_CA": {
                            "properties": []
                        }
                    }
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "seq": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "min:0"
                    ]
                },
                "url": {
                    "type": "string",
                    "readOnly": true,
                    "apiSummary": true
                },
                "urlPath": {
                    "type": "string",
                    "validation": [
                        "regex:\/^[a-zA-Z0-9]+([\\-_][a-zA-Z0-9]+)*$\/"
                    ],
                    "apiSummary": true
                }
            }
        },
        "ContributorRoleEditable": {
            "type": "object",
            "properties": {
                "contributorRoleIdentifier": {
                    "type": "string",
                    "description": "The identifier of the role.",
                    "apiSummary": true,
                    "origin": "primary",
                    "validation": [
                        "in:AUTHOR,EDITOR,CHAIR,REVIEWER,REVIEW_ASSISTANT,STATS_REVIEWER,REVIEWER_EXTERNAL,READER,TRANSLATOR,OTHER"
                    ],
                    "enum": [
                        "AUTHOR",
                        "EDITOR",
                        "CHAIR",
                        "REVIEWER",
                        "REVIEW_ASSISTANT",
                        "STATS_REVIEWER",
                        "REVIEWER_EXTERNAL",
                        "READER",
                        "TRANSLATOR",
                        "OTHER"
                    ]
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "ContributorRoleSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "origin": "composed",
                    "description": "The URL to this contributor role in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "origin": "primary"
                },
                "contributorRoleIdentifier": {
                    "type": "string",
                    "description": "The identifier of the role.",
                    "apiSummary": true,
                    "origin": "primary",
                    "validation": [
                        "in:AUTHOR,EDITOR,CHAIR,REVIEWER,REVIEW_ASSISTANT,STATS_REVIEWER,REVIEWER_EXTERNAL,READER,TRANSLATOR,OTHER"
                    ],
                    "enum": [
                        "AUTHOR",
                        "EDITOR",
                        "CHAIR",
                        "REVIEWER",
                        "REVIEW_ASSISTANT",
                        "STATS_REVIEWER",
                        "REVIEWER_EXTERNAL",
                        "READER",
                        "TRANSLATOR",
                        "OTHER"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The unique id of the role in the database.",
                    "readOnly": true,
                    "apiSummary": true,
                    "origin": "primary"
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "CitationEditable": {
            "type": "object",
            "properties": {
                "arxiv": {
                    "type": "string",
                    "description": "Arxiv id, e.g. 1902.02534.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^(?:\\d+.\\d+|[a-z.-]+.\\d+)\/i"
                    ]
                },
                "authors": {
                    "type": "array",
                    "description": "A list of the authors for this work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "givenName": {
                                "type": "string"
                            },
                            "familyName": {
                                "type": "string"
                            },
                            "orcid": {
                                "type": "string",
                                "validation": [
                                    "nullable",
                                    "orcid"
                                ]
                            },
                            "openAlex": {
                                "type": "string"
                            },
                            "wikidata": {
                                "type": "string"
                            }
                        }
                    }
                },
                "date": {
                    "type": "string",
                    "description": "The publication date",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "doi": {
                    "type": "string",
                    "description": "The DOI itself, e.g. 10.1234\/5a6b-7c8d.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^10[.][0-9]{4,}\\\/[^\\s\"<>]+\/i"
                    ]
                },
                "firstPage": {
                    "type": "string",
                    "description": "The first page of the work\/article, e.g. 49.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "handle": {
                    "type": "string",
                    "description": "Handle id, e.g. 11366\/1249.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^[0-9a-z]+(?:.[0-9a-z]+)*\\\/.+\/i"
                    ]
                },
                "issue": {
                    "type": "string",
                    "description": "The issue of the journal, e.g. 7442.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "lastPage": {
                    "type": "string",
                    "description": "The last page of the work\/article, e.g. 59.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "openAlex": {
                    "type": "string",
                    "description": "OpenAlex id.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "rawCitation": {
                    "type": "string",
                    "description": "Optional metadata that contains references for works cited in this submission as raw text.",
                    "multilingual": false,
                    "validation": []
                },
                "seq": {
                    "type": "integer",
                    "description": "The sequence number of citation.",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceHost": {
                    "type": "string",
                    "description": "Host of the source, e.g. Pensoft Publishers",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceIssn": {
                    "type": "string",
                    "description": "Issn_l of the source, e.g. 2167-8359",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceName": {
                    "type": "string",
                    "description": "Name of the source, e.g. PeerJ",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceType": {
                    "type": "string",
                    "description": "Type of the source, e.g. journal, repository",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "in:book series,conference,ebook platform,journal,metadata,other,repository"
                    ],
                    "enum": [
                        "book series",
                        "conference",
                        "ebook platform",
                        "journal",
                        "metadata",
                        "other",
                        "repository"
                    ]
                },
                "title": {
                    "type": "string",
                    "description": "Title of work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "type": {
                    "type": "string",
                    "description": "The type or genre of the work, e.g. journal-article.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "in:book,book-chapter,book-part,book-section,book-series,book-set,book-track,component,database,dataset,dissertation,edited-book,editorial,erratum,grant,journal,journal-article,journal-issue,journal-volume,letter,libguides,monograph,other,paratext,peer-review,posted-content,preprint,proceedings,proceedings-article,proceedings-series,reference-book,reference-entry,report,report-component,report-series,retraction,review,standard,supplementary-materials"
                    ],
                    "enum": [
                        "book",
                        "book-chapter",
                        "book-part",
                        "book-section",
                        "book-series",
                        "book-set",
                        "book-track",
                        "component",
                        "database",
                        "dataset",
                        "dissertation",
                        "edited-book",
                        "editorial",
                        "erratum",
                        "grant",
                        "journal",
                        "journal-article",
                        "journal-issue",
                        "journal-volume",
                        "letter",
                        "libguides",
                        "monograph",
                        "other",
                        "paratext",
                        "peer-review",
                        "posted-content",
                        "preprint",
                        "proceedings",
                        "proceedings-article",
                        "proceedings-series",
                        "reference-book",
                        "reference-entry",
                        "report",
                        "report-component",
                        "report-series",
                        "retraction",
                        "review",
                        "standard",
                        "supplementary-materials"
                    ]
                },
                "url": {
                    "type": "string",
                    "description": "URL for the work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "urn": {
                    "type": "string",
                    "description": "URN for the work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "volume": {
                    "type": "string",
                    "description": "The volume of the issue of the journal, e.g. 495.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "wikidata": {
                    "type": "string",
                    "description": "Wikidata qid.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                }
            }
        },
        "CitationSummary": {
            "type": "object",
            "properties": {
                "arxiv": {
                    "type": "string",
                    "description": "Arxiv id, e.g. 1902.02534.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^(?:\\d+.\\d+|[a-z.-]+.\\d+)\/i"
                    ]
                },
                "authors": {
                    "type": "array",
                    "description": "A list of the authors for this work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "givenName": {
                                "type": "string"
                            },
                            "familyName": {
                                "type": "string"
                            },
                            "orcid": {
                                "type": "string",
                                "validation": [
                                    "nullable",
                                    "orcid"
                                ]
                            },
                            "openAlex": {
                                "type": "string"
                            },
                            "wikidata": {
                                "type": "string"
                            }
                        }
                    }
                },
                "date": {
                    "type": "string",
                    "description": "The publication date",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "doi": {
                    "type": "string",
                    "description": "The DOI itself, e.g. 10.1234\/5a6b-7c8d.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^10[.][0-9]{4,}\\\/[^\\s\"<>]+\/i"
                    ]
                },
                "firstPage": {
                    "type": "string",
                    "description": "The first page of the work\/article, e.g. 49.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "handle": {
                    "type": "string",
                    "description": "Handle id, e.g. 11366\/1249.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^[0-9a-z]+(?:.[0-9a-z]+)*\\\/.+\/i"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The unique id of citation in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isStructured": {
                    "type": "boolean",
                    "description": "Whether this citation is assumed structured, is calculated at every update and insert.",
                    "default": false,
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "issue": {
                    "type": "string",
                    "description": "The issue of the journal, e.g. 7442.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "lastPage": {
                    "type": "string",
                    "description": "The last page of the work\/article, e.g. 59.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "openAlex": {
                    "type": "string",
                    "description": "OpenAlex id.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "processingStatus": {
                    "type": "integer",
                    "description": "The metadata lookup status.",
                    "default": 0,
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "in:-2,-1,0,1,2,3,4,5"
                    ],
                    "enum": [
                        -2,
                        -1,
                        0,
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                },
                "publicationId": {
                    "type": "integer",
                    "description": "The publication to which this citation is associated with.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "sourceHost": {
                    "type": "string",
                    "description": "Host of the source, e.g. Pensoft Publishers",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceIssn": {
                    "type": "string",
                    "description": "Issn_l of the source, e.g. 2167-8359",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceName": {
                    "type": "string",
                    "description": "Name of the source, e.g. PeerJ",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sourceType": {
                    "type": "string",
                    "description": "Type of the source, e.g. journal, repository",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "in:book series,conference,ebook platform,journal,metadata,other,repository"
                    ],
                    "enum": [
                        "book series",
                        "conference",
                        "ebook platform",
                        "journal",
                        "metadata",
                        "other",
                        "repository"
                    ]
                },
                "title": {
                    "type": "string",
                    "description": "Title of work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "type": {
                    "type": "string",
                    "description": "The type or genre of the work, e.g. journal-article.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "in:book,book-chapter,book-part,book-section,book-series,book-set,book-track,component,database,dataset,dissertation,edited-book,editorial,erratum,grant,journal,journal-article,journal-issue,journal-volume,letter,libguides,monograph,other,paratext,peer-review,posted-content,preprint,proceedings,proceedings-article,proceedings-series,reference-book,reference-entry,report,report-component,report-series,retraction,review,standard,supplementary-materials"
                    ],
                    "enum": [
                        "book",
                        "book-chapter",
                        "book-part",
                        "book-section",
                        "book-series",
                        "book-set",
                        "book-track",
                        "component",
                        "database",
                        "dataset",
                        "dissertation",
                        "edited-book",
                        "editorial",
                        "erratum",
                        "grant",
                        "journal",
                        "journal-article",
                        "journal-issue",
                        "journal-volume",
                        "letter",
                        "libguides",
                        "monograph",
                        "other",
                        "paratext",
                        "peer-review",
                        "posted-content",
                        "preprint",
                        "proceedings",
                        "proceedings-article",
                        "proceedings-series",
                        "reference-book",
                        "reference-entry",
                        "report",
                        "report-component",
                        "report-series",
                        "retraction",
                        "review",
                        "standard",
                        "supplementary-materials"
                    ]
                },
                "url": {
                    "type": "string",
                    "description": "URL for the work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "urn": {
                    "type": "string",
                    "description": "URN for the work.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "volume": {
                    "type": "string",
                    "description": "The volume of the issue of the journal, e.g. 495.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "wikidata": {
                    "type": "string",
                    "description": "Wikidata qid.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                }
            }
        },
        "DataCitationEditable": {
            "type": "object",
            "properties": {
                "authors": {
                    "type": "array",
                    "origin": "setting",
                    "description": "A list of the creators for this dataset.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "givenName": {
                                "type": "string"
                            },
                            "familyName": {
                                "type": "string"
                            },
                            "orcid": {
                                "type": "string",
                                "validation": [
                                    "orcid"
                                ]
                            }
                        }
                    }
                },
                "identifier": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The identifier for the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "required_with:identifierType"
                    ]
                },
                "identifierType": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The identifier type for the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "required_with:identifier",
                        "in:DOI,Accession,PURL,ARK,URI,ARXIV,ECLI,Handle,ISSN,ISBN,PMID,PMCID,UUID"
                    ],
                    "enum": [
                        "DOI",
                        "Accession",
                        "PURL",
                        "ARK",
                        "URI",
                        "ARXIV",
                        "ECLI",
                        "Handle",
                        "ISSN",
                        "ISBN",
                        "PMID",
                        "PMCID",
                        "UUID"
                    ]
                },
                "relationshipType": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The type of relationship between the data and the publication.",
                    "apiSummary": true,
                    "validation": [
                        "in:supporting,generated,analyzed,non-analyzed"
                    ],
                    "enum": [
                        "supporting",
                        "generated",
                        "analyzed",
                        "non-analyzed"
                    ]
                },
                "repository": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The repository where the dataset is stored or the publisher of the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The sequence number of data citation.",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The title of the dataset.",
                    "apiSummary": true
                },
                "url": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The URL of the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "year": {
                    "type": "integer",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The year the dataset was published.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "digits:4"
                    ]
                }
            }
        },
        "DataCitationSummary": {
            "type": "object",
            "properties": {
                "authors": {
                    "type": "array",
                    "origin": "setting",
                    "description": "A list of the creators for this dataset.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "givenName": {
                                "type": "string"
                            },
                            "familyName": {
                                "type": "string"
                            },
                            "orcid": {
                                "type": "string",
                                "validation": [
                                    "orcid"
                                ]
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "readOnly": true,
                    "apiSummary": true
                },
                "identifier": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The identifier for the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "required_with:identifierType"
                    ]
                },
                "identifierType": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The identifier type for the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "required_with:identifier",
                        "in:DOI,Accession,PURL,ARK,URI,ARXIV,ECLI,Handle,ISSN,ISBN,PMID,PMCID,UUID"
                    ],
                    "enum": [
                        "DOI",
                        "Accession",
                        "PURL",
                        "ARK",
                        "URI",
                        "ARXIV",
                        "ECLI",
                        "Handle",
                        "ISSN",
                        "ISBN",
                        "PMID",
                        "PMCID",
                        "UUID"
                    ]
                },
                "publicationId": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "relationshipType": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The type of relationship between the data and the publication.",
                    "apiSummary": true,
                    "validation": [
                        "in:supporting,generated,analyzed,non-analyzed"
                    ],
                    "enum": [
                        "supporting",
                        "generated",
                        "analyzed",
                        "non-analyzed"
                    ]
                },
                "repository": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The repository where the dataset is stored or the publisher of the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The title of the dataset.",
                    "apiSummary": true
                },
                "url": {
                    "type": "string",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The URL of the dataset.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "year": {
                    "type": "integer",
                    "origin": "setting",
                    "multilingual": false,
                    "description": "The year the dataset was published.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "digits:4"
                    ]
                }
            }
        },
        "DecisionEditable": {
            "type": "object",
            "properties": {
                "actions": {
                    "type": "array",
                    "description": "Optional. A list of actions to be taken with this decision, such as sending an email. Each decision supports different actions. See the request body examples for supported decision actions.",
                    "writeOnly": true,
                    "items": {
                        "type": "object"
                    }
                },
                "decision": {
                    "type": "integer",
                    "description": "The decision that was made. One of the `Decision::*` constants.",
                    "apiSummary": true
                },
                "reviewRoundId": {
                    "type": "integer",
                    "description": "The unique ID of the review round when this decision was taken. Do not include this if the decision is not recorded in a review stage. This is a globally unique id. It does not represent whether the decision was taken in the first or second round of reviews for a submission. See `round` below.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "round": {
                    "type": "integer",
                    "description": "The sequential review round when this decision was taken. For example, the first, second or third round of review for this submission. Do not include this unless using `reviewRoundId`.",
                    "apiSummary": true
                }
            }
        },
        "DecisionSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "The URL to this decision in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "dateDecided": {
                    "type": "string",
                    "description": "The date the decision was taken.",
                    "writeDisabledInApi": true,
                    "apiSummary": true,
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "decision": {
                    "type": "integer",
                    "description": "The decision that was made. One of the `Decision::*` constants.",
                    "apiSummary": true
                },
                "description": {
                    "type": "string",
                    "description": "A user-facing description of this decision type.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "editorId": {
                    "type": "integer",
                    "description": "The user ID of the editor who took the decision.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "label": {
                    "type": "string",
                    "description": "A short label or name for this decision type.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "reviewRoundId": {
                    "type": "integer",
                    "description": "The unique ID of the review round when this decision was taken. Do not include this if the decision is not recorded in a review stage. This is a globally unique id. It does not represent whether the decision was taken in the first or second round of reviews for a submission. See `round` below.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "round": {
                    "type": "integer",
                    "description": "The sequential review round when this decision was taken. For example, the first, second or third round of review for this submission. Do not include this unless using `reviewRoundId`.",
                    "apiSummary": true
                },
                "stageId": {
                    "type": "integer",
                    "description": "The workflow stage when this decision was taken. One of the `WORKFLOW_STAGE_ID_` constants.",
                    "writeDisabledInApi": true,
                    "apiSummary": true,
                    "validation": [
                        "min:1",
                        "max:6"
                    ]
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The decision applies to this submission.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                }
            }
        },
        "DoiEditable": {
            "type": "object",
            "properties": {
                "doi": {
                    "type": "string",
                    "description": "The DOI itself, such as `10.1234\/5a6b-7c8d`.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^\\d+(.\\d+)+\\\/\/"
                    ]
                },
                "registrationAgency": {
                    "type": "string",
                    "description": "The agency with which the DOI is registered. If the DOI was manually marked registered, this will be `null`.",
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "The status of the DOI, such as whether it has been successfully deposited. Must match the value of one of the following: `Doi::STATUS_UNREGISTERED`, `Doi::STATUS_SUBMITTED`, `Doi::STATUS_REGISTERED`, `Doi::STATUS_ERROR`, `Doi::STATUS_STALE`.",
                    "apiSummary": true,
                    "default": 1,
                    "validation": [
                        "in:1,2,3,4,5"
                    ],
                    "enum": [
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                }
            }
        },
        "DoiSummary": {
            "type": "object",
            "properties": {
                "contextId": {
                    "type": "integer",
                    "description": "The context this DOI was created by.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "doi": {
                    "type": "string",
                    "description": "The DOI itself, such as `10.1234\/5a6b-7c8d`.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^\\d+(.\\d+)+\\\/\/"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "An internal id used to track the DOI.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "registrationAgency": {
                    "type": "string",
                    "description": "The agency with which the DOI is registered. If the DOI was manually marked registered, this will be `null`.",
                    "apiSummary": true
                },
                "resolvingUrl": {
                    "type": "string",
                    "description": "The full URL to resolve the DOI, such as `https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/doi.org\/10.1234\/5a6b-7c8d`.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "status": {
                    "type": "integer",
                    "description": "The status of the DOI, such as whether it has been successfully deposited. Must match the value of one of the following: `Doi::STATUS_UNREGISTERED`, `Doi::STATUS_SUBMITTED`, `Doi::STATUS_REGISTERED`, `Doi::STATUS_ERROR`, `Doi::STATUS_STALE`.",
                    "apiSummary": true,
                    "default": 1,
                    "validation": [
                        "in:1,2,3,4,5"
                    ],
                    "enum": [
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                }
            }
        },
        "EmailTemplateEditable": {
            "type": "object",
            "properties": {
                "alternateTo": {
                    "type": "string",
                    "description": "The `key` of another email template. This is used to assign a custom template to a `Mailable`. The value of `alternateTo` must match the email template key of a `Mailable`.",
                    "apiSummary": true
                },
                "body": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "key": {
                    "type": "string",
                    "description": "A unique key for this email template.",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subject": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "EmailTemplateSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "alternateTo": {
                    "type": "string",
                    "description": "The `key` of another email template. This is used to assign a custom template to a `Mailable`. The value of `alternateTo` must match the email template key of a `Mailable`.",
                    "apiSummary": true
                },
                "body": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contextId": {
                    "type": "integer",
                    "description": "The ID of the context (journal\/press) this email is related to. Only used for custom email templates. Default is `null`.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The email template ID.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "key": {
                    "type": "string",
                    "description": "A unique key for this email template.",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subject": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "EmailSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "A URL to this object in the REST API.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocId": {
                    "type": "integer",
                    "description": "The ID of the submission associated with the logged email.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocType": {
                    "type": "integer",
                    "description": "The assoc object. Typically `ASSOC_TYPE_SUBMISSION`.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "body": {
                    "type": "string",
                    "description": "The full body of the email.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "dateSent": {
                    "type": "string",
                    "description": "The date the email was logged.",
                    "readOnly": true,
                    "apiSummary": true,
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "eventType": {
                    "type": "integer",
                    "description": "The type of event resulting in the email being sent. One of the `SubmissionEmailLogEventType` values.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "fromAddress": {
                    "type": "string",
                    "description": "The email address of the sender.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The ID of the email log.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "recipients": {
                    "type": "string",
                    "description": "The recipients' names and email addresses.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "senderId": {
                    "type": "integer",
                    "description": "The user ID of the email sender. Null for automated emails.",
                    "readOnly": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "subject": {
                    "type": "string",
                    "description": "The subject of the email.",
                    "readOnly": true,
                    "apiSummary": true
                }
            }
        },
        "FunderEditable": {
            "type": "object",
            "properties": {
                "grants": {
                    "type": "array",
                    "origin": "setting",
                    "description": "A list of the grants for this funder.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "grantDoi": {
                                "type": "string",
                                "validation": [
                                    "nullable",
                                    "regex:#^10[.][0-9]{4,}\/\\S+$#i"
                                ]
                            },
                            "grantName": {
                                "type": "string"
                            },
                            "grantNumber": {
                                "type": "string"
                            }
                        }
                    }
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) id of this funder.",
                    "origin": "primary",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "origin": "primary",
                    "description": "The sequence number of funder.",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "FunderSummary": {
            "type": "object",
            "properties": {
                "grants": {
                    "type": "array",
                    "origin": "setting",
                    "description": "A list of the grants for this funder.",
                    "multilingual": false,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "grantDoi": {
                                "type": "string",
                                "validation": [
                                    "nullable",
                                    "regex:#^10[.][0-9]{4,}\/\\S+$#i"
                                ]
                            },
                            "grantName": {
                                "type": "string"
                            },
                            "grantNumber": {
                                "type": "string"
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer",
                    "description": "The unique id of funder in the database.",
                    "origin": "primary",
                    "readOnly": true,
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) id of this funder.",
                    "origin": "primary",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                },
                "rorObject": {
                    "type": "object",
                    "description": "An object representing the ROR for this funder.",
                    "origin": "composed",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Ror",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the ROR for this funder.",
                        "origin": "composed",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Ror"
                    }
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The submission to which this funder is associated with.",
                    "origin": "primary",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                }
            }
        },
        "GalleyEditable": {
            "type": "object",
            "properties": {
                "doiId": {
                    "type": "integer",
                    "description": "Reference to the DOI for this galley",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "isApproved": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "label": {
                    "type": "string",
                    "description": "A human-readable label for this galley. For the primary article, it usually indicates the format like PDF, ePub or full text. For supplementary files it often indicates the content, such as source data or interview transcripts.",
                    "apiSummary": true
                },
                "locale": {
                    "type": "string",
                    "description": "The primary locale of this galley.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "pub-id::publisher-id": {
                    "type": "string",
                    "description": "A unique ID provided by the publisher. This is often used to record the ID of this galley in an external database, in cases where the publisher maintains separate records.",
                    "apiSummary": true
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "seq": {
                    "type": "integer",
                    "description": "In what order this galley should appear in lists of galleys for this publication.",
                    "apiSummary": true
                },
                "submissionFileId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "urlPath": {
                    "type": "string",
                    "description": "An optional path to use in the URL instead of the ID.",
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$\/"
                    ]
                },
                "urlRemote": {
                    "type": "string",
                    "description": "An optional URL where the galley can be viewed or downloaded.",
                    "apiSummary": true,
                    "validation": [
                        "url"
                    ]
                }
            }
        },
        "GalleySummary": {
            "type": "object",
            "properties": {
                "doiObject": {
                    "type": "object",
                    "description": "DOI object for this galley",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "DOI object for this galley",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "file": {
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/SubmissionFile",
                    "properties": {
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/SubmissionFile"
                    }
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "isApproved": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "label": {
                    "type": "string",
                    "description": "A human-readable label for this galley. For the primary article, it usually indicates the format like PDF, ePub or full text. For supplementary files it often indicates the content, such as source data or interview transcripts.",
                    "apiSummary": true
                },
                "locale": {
                    "type": "string",
                    "description": "The primary locale of this galley.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "pub-id::publisher-id": {
                    "type": "string",
                    "description": "A unique ID provided by the publisher. This is often used to record the ID of this galley in an external database, in cases where the publisher maintains separate records.",
                    "apiSummary": true
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "seq": {
                    "type": "integer",
                    "description": "In what order this galley should appear in lists of galleys for this publication.",
                    "apiSummary": true
                },
                "submissionFileId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "urlPublished": {
                    "type": "string",
                    "description": "The URL where this galley can be viewed or downloaded.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlRemote": {
                    "type": "string",
                    "description": "An optional URL where the galley can be viewed or downloaded.",
                    "apiSummary": true,
                    "validation": [
                        "url"
                    ]
                }
            }
        },
        "InstitutionEditable": {
            "type": "object",
            "properties": {
                "ipRanges": {
                    "type": "array",
                    "description": "A list of IP ranges belonging to this institution. Used to track usage statistics and subscription access by institution.",
                    "apiSummary": true,
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                }
            }
        },
        "InstitutionSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "The URL to this institution in the REST API.",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "description": "The context which added this institution.",
                    "writeDisabledInApi": true,
                    "apiSummary": true
                },
                "deletedAt": {
                    "type": "string",
                    "description": "The date this institution was deleted, if it has been deleted. Institutions are kept after being deleted because they may be referenced in statistics data.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of the institution in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "ipRanges": {
                    "type": "array",
                    "description": "A list of IP ranges belonging to this institution. Used to track usage statistics and subscription access by institution.",
                    "apiSummary": true,
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                }
            }
        },
        "IssueEditable": {
            "type": "object",
            "properties": {
                "accessStatus": {
                    "type": "integer"
                },
                "coverImage": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "coverImageAltText": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "dateNotified": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "datePublished": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "doiId": {
                    "type": "integer",
                    "description": "Reference to the DOI for this issue",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "journalId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "lastModified": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "number": {
                    "type": "string",
                    "apiSummary": true
                },
                "openAccessDate": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "originalStyleFileName": {
                    "type": "string"
                },
                "published": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "publishedUrl": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "url"
                    ]
                },
                "showNumber": {
                    "type": "boolean"
                },
                "showTitle": {
                    "type": "boolean"
                },
                "showVolume": {
                    "type": "boolean"
                },
                "showYear": {
                    "type": "boolean"
                },
                "styleFileName": {
                    "type": "string"
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "urlPath": {
                    "type": "string",
                    "description": "An optional path to use in the URL instead of the ID.",
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$\/"
                    ]
                },
                "volume": {
                    "type": "integer",
                    "apiSummary": true
                },
                "year": {
                    "type": "integer",
                    "apiSummary": true
                }
            }
        },
        "IssueSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "readOnly": true,
                    "apiSummary": true
                },
                "coverImage": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "coverImageAltText": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "coverImageUrl": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "datePublished": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "doiObject": {
                    "type": "object",
                    "description": "DOI object for this issue",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "DOI object for this issue",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "galleys": {
                    "type": "array",
                    "readOnly": true,
                    "apiSummary": true,
                    "items": {
                        "$ref": "#\/definitions\/Galley"
                    }
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "identification": {
                    "type": "string",
                    "readOnly": true,
                    "apiSummary": true
                },
                "journalId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "number": {
                    "type": "string",
                    "apiSummary": true
                },
                "published": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "publishedUrl": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "url"
                    ]
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "volume": {
                    "type": "integer",
                    "apiSummary": true
                },
                "year": {
                    "type": "integer",
                    "apiSummary": true
                }
            }
        },
        "NavigationMenuEditable": {
            "type": "object",
            "properties": {
                "areaName": {
                    "type": "string",
                    "description": "The theme navigation area this menu is assigned to.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "menuTree": {
                    "type": "array",
                    "description": "The menu tree structure for assigned items.",
                    "writeOnly": true,
                    "apiSummary": false,
                    "items": {
                        "type": "object",
                        "properties": {
                            "menuItemId": {
                                "type": "integer",
                                "description": "The menu item ID."
                            },
                            "seq": {
                                "type": "integer",
                                "description": "The sequence order of the item."
                            },
                            "parentId": {
                                "type": "integer",
                                "description": "The parent menu item ID for nested items.",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    }
                },
                "title": {
                    "type": "string",
                    "description": "The title of the navigation menu.",
                    "apiSummary": true,
                    "validation": [
                        "required"
                    ]
                }
            }
        },
        "NavigationMenuSummary": {
            "type": "object",
            "properties": {
                "areaName": {
                    "type": "string",
                    "description": "The theme navigation area this menu is assigned to.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID. Use 0 for site-level menus.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of the navigation menu.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "title": {
                    "type": "string",
                    "description": "The title of the navigation menu.",
                    "apiSummary": true,
                    "validation": [
                        "required"
                    ]
                }
            }
        },
        "NavigationMenuItemEditable": {
            "type": "object",
            "properties": {
                "content": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "path": {
                    "type": "string",
                    "description": "The URL path for custom navigation menu items.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9\\\/._-]+$\/"
                    ]
                },
                "queryParams": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "remoteUrl": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "seq": {
                    "type": "integer",
                    "description": "The sequence order of the navigation menu item.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "type": {
                    "type": "string",
                    "description": "The type of navigation menu item (e.g., NMI_TYPE_CUSTOM, NMI_TYPE_ABOUT).",
                    "apiSummary": true,
                    "validation": [
                        "required"
                    ]
                }
            }
        },
        "NavigationMenuItemSummary": {
            "type": "object",
            "properties": {
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID. Use 0 for site-level items.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of the navigation menu item.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "localizedTitle": {
                    "type": "string",
                    "description": "The localized title of the navigation menu item.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "path": {
                    "type": "string",
                    "description": "The URL path for custom navigation menu items.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9\\\/._-]+$\/"
                    ]
                },
                "queryParams": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "remoteUrl": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "seq": {
                    "type": "integer",
                    "description": "The sequence order of the navigation menu item.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "type": {
                    "type": "string",
                    "description": "The type of navigation menu item (e.g., NMI_TYPE_CUSTOM, NMI_TYPE_ABOUT).",
                    "apiSummary": true,
                    "validation": [
                        "required"
                    ]
                },
                "url": {
                    "type": "string",
                    "description": "The computed URL for this navigation menu item.",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "PublicationEditable": {
            "type": "object",
            "properties": {
                "abstract": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "accessStatus": {
                    "type": "integer",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "articleNumber": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "canCurrentUserChangeMetadata": {
                    "type": "boolean",
                    "description": "Whether the current user can change the metadata of this publication.",
                    "apiSummary": true
                },
                "copyrightHolder": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "copyrightYear": {
                    "type": "integer",
                    "description": "The copyright year for this publication.",
                    "validation": [
                        "nullable"
                    ]
                },
                "coverImage": {
                    "type": "object",
                    "multilingual": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "coverage": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "createdAt": {
                    "type": "string",
                    "description": "The timestamp when this publication was created.",
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ],
                    "apiSummary": true
                },
                "dataAvailability": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "datePublished": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "disciplines": {
                    "type": "array",
                    "description": "Optional metadata that describes the submission's types of study or branches of knowledge.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "doiId": {
                    "type": "integer",
                    "description": "The ID of the DOI to assign to this publication.",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "fundingStatement": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "hideAuthor": {
                    "type": "boolean",
                    "description": "Whether the contributor details should be displayed for this publication. Commonly used for editorial statements without individual authorship.",
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "issueId": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "jatsPublicVisibility": {
                    "type": "boolean",
                    "description": "Whether the JATS XML file should be publicly available for download when the publication is published.",
                    "apiSummary": true,
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "keywords": {
                    "type": "array",
                    "description": "Optional metadata, usually one- to three-word phrases that are used to indicate the main topics of a submission.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "lastModified": {
                    "type": "string",
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ]
                },
                "licenseUrl": {
                    "type": "string",
                    "description": "A URL to a webpage describing the license terms for this publication.",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "pages": {
                    "type": "string",
                    "description": "The pages of the issue in which this article appears if it is published in a physical format.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "plainLanguageSummary": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "prefix": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "primaryContactId": {
                    "type": "integer",
                    "description": "Which `contributor` is the primary contact for this publication.",
                    "apiSummary": true
                },
                "pub-id::publisher-id": {
                    "type": "string",
                    "description": "A unique ID provided by the publisher. It will be used in the publication's URL path instead of the `id` when present.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "rights": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sectionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "seq": {
                    "type": "integer",
                    "default": 0,
                    "validation": [
                        "nullable"
                    ]
                },
                "source": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sourcePublicationId": {
                    "type": "integer",
                    "description": "The ID of another publication that this one is derived from. Used to reference the source publication when creating versions.",
                    "validation": [
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "Whether the publication is Queued (not yet scheduled for publication), Declined, Published or Scheduled (scheduled for publication at a future date). One of the `PKPPublication::STATUS_*` constants. Default is `PKPPublication::STATUS_QUEUED`.",
                    "apiSummary": true,
                    "default": 1,
                    "validation": [
                        "in:1,3,4,5,6,7"
                    ],
                    "enum": [
                        1,
                        3,
                        4,
                        5,
                        6,
                        7
                    ]
                },
                "subjects": {
                    "type": "array",
                    "description": "Optional metadata that consists of keywords, key phrases or classification codes that describe the submission's topics.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "submissionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "subtitle": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "summaryOfChanges": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "supportingAgencies": {
                    "type": "array",
                    "description": "Optional metadata that indicates the source of research funding or other institutional support.",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "items": {
                        "type": "object",
                        "properties": {
                            "name": {
                                "type": "string"
                            },
                            "source": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            },
                            "identifier": {
                                "type": "string",
                                "validation": [
                                    "nullable"
                                ]
                            }
                        }
                    },
                    "properties": {
                        "en": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        },
                        "fr_CA": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "source": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                },
                                "identifier": {
                                    "type": "string",
                                    "validation": [
                                        "nullable"
                                    ]
                                }
                            }
                        }
                    }
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "type": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "updateType": {
                    "type": "string",
                    "description": "The type of update represented by this publication version (e.g. addendum, correction, retraction). One of the UpdateType enumeration values.",
                    "apiSummary": true,
                    "validation": [
                        "in:addendum,clarification,correction,corrigendum,erratum,expression_of_concern,new_edition,new_version,partial_retraction,removal,retraction,withdrawal"
                    ],
                    "enum": [
                        "addendum",
                        "clarification",
                        "correction",
                        "corrigendum",
                        "erratum",
                        "expression_of_concern",
                        "new_edition",
                        "new_version",
                        "partial_retraction",
                        "removal",
                        "retraction",
                        "withdrawal"
                    ]
                },
                "urlPath": {
                    "type": "string",
                    "description": "An optional path to use in the URL instead of the ID.",
                    "validation": [
                        "nullable",
                        "regex:\/^[a-zA-Z0-9]+([\\.\\-_][a-zA-Z0-9]+)*$\/"
                    ]
                },
                "versionMajor": {
                    "type": "integer",
                    "description": "The major part of the version of a publication given the major.minor notation of the version",
                    "apiSummary": true,
                    "validation": [
                        "min:1"
                    ]
                },
                "versionMinor": {
                    "type": "integer",
                    "description": "The minor part of the version of a publication given the major.minor notation of the version",
                    "apiSummary": true,
                    "validation": [
                        "min:0"
                    ]
                },
                "versionStage": {
                    "type": "string",
                    "description": "The version stage as given in VersionStage enumeration",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "PublicationSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "authorsString": {
                    "type": "string",
                    "description": "All of the authors rendered with the appropriate separators according to the locale.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "authorsStringIncludeInBrowse": {
                    "type": "string",
                    "description": "A list of authors that are included in publication lists, like tables of content and search results, rendered with the appropriate separators according to the locale.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "authorsStringShort": {
                    "type": "string",
                    "description": "A shortened version of the authors rendered with the appropriate separators according to the locale.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "canCurrentUserChangeMetadata": {
                    "type": "boolean",
                    "description": "Whether the current user can change the metadata of this publication.",
                    "apiSummary": true
                },
                "categoryIds": {
                    "type": "array",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "integer"
                    }
                },
                "coverImage": {
                    "type": "object",
                    "multilingual": true,
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": []
                        },
                        "fr_CA": {
                            "properties": []
                        }
                    }
                },
                "createdAt": {
                    "type": "string",
                    "description": "The timestamp when this publication was created.",
                    "validation": [
                        "date_format:Y-m-d H:i:s"
                    ],
                    "apiSummary": true
                },
                "datePublished": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "date_format:Y-m-d"
                    ]
                },
                "doiObject": {
                    "type": "object",
                    "description": "An object representing the DOI for this publication.",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the DOI for this publication.",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "fullTitle": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "galleys": {
                    "type": "array",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/Galley"
                    }
                },
                "id": {
                    "type": "integer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "jatsPublicVisibility": {
                    "type": "boolean",
                    "description": "Whether the JATS XML file should be publicly available for download when the publication is published.",
                    "apiSummary": true,
                    "default": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "locale": {
                    "type": "string",
                    "description": "The primary locale of the submission this publication is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "pages": {
                    "type": "string",
                    "description": "The pages of the issue in which this article appears if it is published in a physical format.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "prefix": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "primaryContactId": {
                    "type": "integer",
                    "description": "Which `contributor` is the primary contact for this publication.",
                    "apiSummary": true
                },
                "pub-id::publisher-id": {
                    "type": "string",
                    "description": "A unique ID provided by the publisher. It will be used in the publication's URL path instead of the `id` when present.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewDoiItems": {
                    "type": "array",
                    "description": "Information about review-related DOI object for open peer reviews and author responses.",
                    "readOnly": true,
                    "apiSummary": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "pubObjectType": {
                                "type": "string",
                                "description": "One of Repo::doi()::TYPE_PEER_REVIEW or Repo::doi()::TYPE_AUTHOR_RESPONSE"
                            },
                            "pubObjectId": {
                                "type": "integer",
                                "description": "Either a ReviewAssignment or AuthorResponse ID"
                            },
                            "doiObject": {
                                "type": "object",
                                "description": "An object representing the DOI for the given review-related pub object",
                                "$ref": "#\/definitions\/Doi"
                            }
                        }
                    }
                },
                "sectionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "sourcePublicationId": {
                    "type": "integer",
                    "description": "The ID of another publication that this one is derived from. Used to reference the source publication when creating versions.",
                    "validation": [
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "Whether the publication is Queued (not yet scheduled for publication), Declined, Published or Scheduled (scheduled for publication at a future date). One of the `PKPPublication::STATUS_*` constants. Default is `PKPPublication::STATUS_QUEUED`.",
                    "apiSummary": true,
                    "default": 1,
                    "validation": [
                        "in:1,3,4,5,6,7"
                    ],
                    "enum": [
                        1,
                        3,
                        4,
                        5,
                        6,
                        7
                    ]
                },
                "submissionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "subtitle": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "updateType": {
                    "type": "string",
                    "description": "The type of update represented by this publication version (e.g. addendum, correction, retraction). One of the UpdateType enumeration values.",
                    "apiSummary": true,
                    "validation": [
                        "in:addendum,clarification,correction,corrigendum,erratum,expression_of_concern,new_edition,new_version,partial_retraction,removal,retraction,withdrawal"
                    ],
                    "enum": [
                        "addendum",
                        "clarification",
                        "correction",
                        "corrigendum",
                        "erratum",
                        "expression_of_concern",
                        "new_edition",
                        "new_version",
                        "partial_retraction",
                        "removal",
                        "retraction",
                        "withdrawal"
                    ]
                },
                "urlPublished": {
                    "type": "string",
                    "description": "The public URL for this publication or where it will be available if it has not yet been published.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "versionMajor": {
                    "type": "integer",
                    "description": "The major part of the version of a publication given the major.minor notation of the version",
                    "apiSummary": true,
                    "validation": [
                        "min:1"
                    ]
                },
                "versionMinor": {
                    "type": "integer",
                    "description": "The minor part of the version of a publication given the major.minor notation of the version",
                    "apiSummary": true,
                    "validation": [
                        "min:0"
                    ]
                },
                "versionStage": {
                    "type": "string",
                    "description": "The version stage as given in VersionStage enumeration",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "versionString": {
                    "type": "string",
                    "description": "The calculated display string of the version of this publication",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "ContributorEditable": {
            "type": "object",
            "properties": {
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "competingInterests": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contributorType": {
                    "type": "string",
                    "description": "The name of this contributor's type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "country": {
                    "type": "string",
                    "description": "The author's country in a two-letter code (ISO 3166-1). See [all codes](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements).",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "country",
                        "regex:\/^[A-Z]{2}$\/"
                    ]
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost",
                        "nullable"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "includeInBrowse": {
                    "type": "boolean",
                    "description": "Whether or not to include this contributor in author lists when the publication appears in search results, tables of content and catalog entries.",
                    "default": true,
                    "apiSummary": true
                },
                "orcid": {
                    "type": "string",
                    "description": "The ORCID of this contributor. See: https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/orcid.org\/",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "orcid"
                    ]
                },
                "orcidAccessDenied": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessExpiresOn": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessScope": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidEmailToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidRefreshToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidSandbox": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidVerificationRequested": {
                    "type": "boolean",
                    "apiSummary": false
                },
                "orcidWorkPutCode": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "organizationName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "rorId": {
                    "type": "string",
                    "description": "The ROR ID for ORGANIZATION contributor type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The order in which this contributor should appear in a list of contributors.",
                    "apiSummary": true
                },
                "url": {
                    "type": "string",
                    "description": "An optional URL to this contributor's webpage.",
                    "validation": [
                        "url",
                        "nullable"
                    ]
                }
            }
        },
        "ContributorSummary": {
            "type": "object",
            "properties": {
                "affiliations": {
                    "type": "array",
                    "description": "The scholarly institution this contributor is employed by or affiliated with.",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/Affiliation"
                    }
                },
                "contributorRoles": {
                    "type": "array",
                    "description": "The names of this contributor's roles in the publication, such as 'Author' or 'Translator', and the translations",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "$ref": "#\/definitions\/ContributorRole"
                    },
                    "validation": [
                        "min:1",
                        "nullable"
                    ]
                },
                "contributorType": {
                    "type": "string",
                    "description": "The name of this contributor's type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "country": {
                    "type": "string",
                    "description": "The author's country in a two-letter code (ISO 3166-1). See [all codes](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/en.wikipedia.org\/wiki\/ISO_3166-1_alpha-2#Officially_assigned_code_elements).",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "country",
                        "regex:\/^[A-Z]{2}$\/"
                    ]
                },
                "creditRoles": {
                    "type": "array",
                    "description": "CRediT Roles",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "type": "object",
                        "properties": {
                            "role": {
                                "type": "string",
                                "validation": [
                                    "url"
                                ]
                            },
                            "degree": {
                                "type": "string"
                            }
                        }
                    },
                    "validation": [
                        "nullable"
                    ]
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost",
                        "nullable"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "type": "string",
                    "description": "The full name of the author. This will be the preferredPublicName or, if that is not available, a string containing the givenName and familyName, or organization name, or anonymous",
                    "apiSummary": true,
                    "readOnly": true
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "includeInBrowse": {
                    "type": "boolean",
                    "description": "Whether or not to include this contributor in author lists when the publication appears in search results, tables of content and catalog entries.",
                    "default": true,
                    "apiSummary": true
                },
                "orcid": {
                    "type": "string",
                    "description": "The ORCID of this contributor. See: https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/orcid.org\/",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "orcid"
                    ]
                },
                "orcidDisplayValue": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "organizationName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publicationId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "rorId": {
                    "type": "string",
                    "description": "The ROR ID for ORGANIZATION contributor type.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "seq": {
                    "type": "integer",
                    "description": "The order in which this contributor should appear in a list of contributors.",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The primary locale of the submission this author is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "ReviewAssignmentEditable": {
            "type": "object",
            "properties": {
                "cancelled": {
                    "type": "boolean",
                    "description": "Indicates whether review assignment was cancelled",
                    "apiSummary": true
                },
                "comments": {
                    "type": "string",
                    "description": "Comments from a reviewer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "competingInterests": {
                    "type": "string",
                    "description": "Reviewer's competing interests",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "competingInterestsDeclared": {
                    "type": "boolean",
                    "description": "Whether the reviewer answered the competing interests question. False when no declaration is on record, e.g. because the context did not request one.",
                    "apiSummary": true
                },
                "considered": {
                    "type": "integer",
                    "description": "Whether editor considered a review assignment request",
                    "apiSummary": true,
                    "validation": [
                        "in:0,1,2,3,4"
                    ],
                    "enum": [
                        0,
                        1,
                        2,
                        3,
                        4
                    ]
                },
                "dateAcknowledged": {
                    "type": "string",
                    "description": "Date the editor acknowledged the review",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateAssigned": {
                    "type": "string",
                    "description": "Date the reviewer was assigned to the submission",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateCancelled": {
                    "type": "string",
                    "description": "Date the reviewer cancelled the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateCompleted": {
                    "type": "string",
                    "description": "Date the assignment was completed",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateConfirmed": {
                    "type": "string",
                    "description": "Date the reviewer confirmed the assignment to the submission",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateConsidered": {
                    "type": "string",
                    "description": "Date the editor confirmed the review",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateDue": {
                    "type": "string",
                    "description": "Date the review assignment should be completed",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateNotified": {
                    "type": "string",
                    "description": "Date the reviewer was notified about the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateRated": {
                    "type": "string",
                    "description": "Date the submission was rated by the reviewer",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateReminded": {
                    "type": "string",
                    "description": "Date the reviewer was reminded about the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateResponseDue": {
                    "type": "string",
                    "description": "Date until which the response from reviewer is expected",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "declined": {
                    "type": "boolean",
                    "description": "Whether review assignment was declined by the reviewer",
                    "apiSummary": true
                },
                "doiId": {
                    "type": "integer",
                    "description": "The ID of the DOI to assign to this review assignment.",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "isReviewPubliclyVisible": {
                    "type": "boolean",
                    "description": "Boolean indicating whether the review is publicly visible or not.",
                    "apiSummary": true
                },
                "lastModifiedById": {
                    "type": "integer",
                    "description": "The ID of the user who last made modifications to the submitted review.",
                    "apiSummary": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidReviewPutCode": {
                    "type": "string",
                    "description": "Put Code for a review work submitted to ORCID.",
                    "apiSummary": false,
                    "validation": [
                        "nullable"
                    ]
                },
                "quality": {
                    "type": "integer",
                    "description": "Assessment of the review quality",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reminderWasAutomatic": {
                    "type": "boolean",
                    "description": "Whether the assignment reminder for the reviewer was sent automatically",
                    "apiSummary": true
                },
                "requestResent": {
                    "type": "boolean",
                    "description": "Whether the review request was resent to the reviewer",
                    "apiSummary": true
                },
                "reviewFormId": {
                    "type": "integer",
                    "description": "The ID of the custom review form",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewMethod": {
                    "type": "integer",
                    "description": "The method used in the review. One of the SUBMISSION_REVIEW_METHOD_ constants",
                    "apiSummary": true
                },
                "reviewRoundId": {
                    "type": "integer",
                    "description": "The ID of the review round",
                    "apiSummary": true
                },
                "reviewerId": {
                    "type": "integer",
                    "description": "Reviewer's unique ID",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerRecommendationId": {
                    "type": "integer",
                    "description": "Reviewer recommendation id",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "round": {
                    "type": "integer",
                    "description": "The round of the review stage",
                    "apiSummary": true
                },
                "stageId": {
                    "type": "integer",
                    "description": "The ID of the review stage: external or internal review",
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "The status of the review assignment. One of the REVIEW_ASSIGNMENT_STATUS_ constants",
                    "apiSummary": true
                },
                "step": {
                    "type": "integer",
                    "description": "The current step of the reviewer form",
                    "apiSummary": true
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The ID of the submission associated with the assignment",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The locale of the submission associated with the assignment",
                    "apiSummary": true
                }
            }
        },
        "ReviewAssignmentSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "A URL to this object in the REST API.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "cancelled": {
                    "type": "boolean",
                    "description": "Indicates whether review assignment was cancelled",
                    "apiSummary": true
                },
                "comments": {
                    "type": "string",
                    "description": "Comments from a reviewer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "competingInterests": {
                    "type": "string",
                    "description": "Reviewer's competing interests",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "competingInterestsDeclared": {
                    "type": "boolean",
                    "description": "Whether the reviewer answered the competing interests question. False when no declaration is on record, e.g. because the context did not request one.",
                    "apiSummary": true
                },
                "considered": {
                    "type": "integer",
                    "description": "Whether editor considered a review assignment request",
                    "apiSummary": true,
                    "validation": [
                        "in:0,1,2,3,4"
                    ],
                    "enum": [
                        0,
                        1,
                        2,
                        3,
                        4
                    ]
                },
                "dateAcknowledged": {
                    "type": "string",
                    "description": "Date the editor acknowledged the review",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateAssigned": {
                    "type": "string",
                    "description": "Date the reviewer was assigned to the submission",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateCancelled": {
                    "type": "string",
                    "description": "Date the reviewer cancelled the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateCompleted": {
                    "type": "string",
                    "description": "Date the assignment was completed",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateConfirmed": {
                    "type": "string",
                    "description": "Date the reviewer confirmed the assignment to the submission",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateConsidered": {
                    "type": "string",
                    "description": "Date the editor confirmed the review",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateDue": {
                    "type": "string",
                    "description": "Date the review assignment should be completed",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateNotified": {
                    "type": "string",
                    "description": "Date the reviewer was notified about the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateRated": {
                    "type": "string",
                    "description": "Date the submission was rated by the reviewer",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateReminded": {
                    "type": "string",
                    "description": "Date the reviewer was reminded about the assignment",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "dateResponseDue": {
                    "type": "string",
                    "description": "Date until which the response from reviewer is expected",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true
                },
                "declined": {
                    "type": "boolean",
                    "description": "Whether review assignment was declined by the reviewer",
                    "apiSummary": true
                },
                "doiObject": {
                    "type": "object",
                    "description": "An object representing the DOI for this review assignment.",
                    "apiSummary": true,
                    "readOnly": true,
                    "$ref": "#\/definitions\/Doi",
                    "properties": {
                        "type": "object",
                        "description": "An object representing the DOI for this review assignment.",
                        "apiSummary": true,
                        "readOnly": true,
                        "$ref": "#\/definitions\/Doi"
                    }
                },
                "id": {
                    "type": "integer",
                    "description": "The ID of this review assignment",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isReviewPubliclyVisible": {
                    "type": "boolean",
                    "description": "Boolean indicating whether the review is publicly visible or not.",
                    "apiSummary": true
                },
                "lastModified": {
                    "type": "string",
                    "description": "Date of the most recent assignment update",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ],
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "lastModifiedBy": {
                    "type": "object",
                    "description": "The user who last made modifications to the submitted review.",
                    "apiSummary": true,
                    "readOnly": true,
                    "properties": []
                },
                "quality": {
                    "type": "integer",
                    "description": "Assessment of the review quality",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reminderWasAutomatic": {
                    "type": "boolean",
                    "description": "Whether the assignment reminder for the reviewer was sent automatically",
                    "apiSummary": true
                },
                "requestResent": {
                    "type": "boolean",
                    "description": "Whether the review request was resent to the reviewer",
                    "apiSummary": true
                },
                "reviewFormId": {
                    "type": "integer",
                    "description": "The ID of the custom review form",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewMethod": {
                    "type": "integer",
                    "description": "The method used in the review. One of the SUBMISSION_REVIEW_METHOD_ constants",
                    "apiSummary": true
                },
                "reviewRoundId": {
                    "type": "integer",
                    "description": "The ID of the review round",
                    "apiSummary": true
                },
                "reviewerFullName": {
                    "type": "string",
                    "description": "The full name of the reviewer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "reviewerId": {
                    "type": "integer",
                    "description": "Reviewer's unique ID",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerRecommendation": {
                    "type": "object",
                    "description": "An object representing the reviewer's recommendation, including its id, type, and human-readable label.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": []
                },
                "reviewerRecommendationId": {
                    "type": "integer",
                    "description": "Reviewer recommendation id",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerRecommendationType": {
                    "type": "integer",
                    "description": "Machine-readable type of the reviewer recommendation (1=approved, 2=notApproved, 3=revisionsRequested, 4=withComments). Null if no recommendation has been made.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewerUserName": {
                    "type": "string",
                    "description": "The username of the reviewer",
                    "readOnly": true,
                    "apiSummary": true
                },
                "round": {
                    "type": "integer",
                    "description": "The round of the review stage",
                    "apiSummary": true
                },
                "stageId": {
                    "type": "integer",
                    "description": "The ID of the review stage: external or internal review",
                    "apiSummary": true
                },
                "status": {
                    "type": "integer",
                    "description": "The status of the review assignment. One of the REVIEW_ASSIGNMENT_STATUS_ constants",
                    "apiSummary": true
                },
                "step": {
                    "type": "integer",
                    "description": "The current step of the reviewer form",
                    "apiSummary": true
                },
                "submissionId": {
                    "type": "integer",
                    "description": "The ID of the submission associated with the assignment",
                    "apiSummary": true
                },
                "submissionLocale": {
                    "type": "string",
                    "description": "The locale of the submission associated with the assignment",
                    "apiSummary": true
                },
                "submissionStageId": {
                    "type": "integer",
                    "description": "The stage of the editorial workflow that this submission is currently in. One of the `WORKFLOW_STAGE_ID_` constants. Default is `WORKFLOW_STAGE_ID_SUBMISSION`.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "min:1",
                        "max:5"
                    ]
                }
            }
        },
        "ReviewRoundEditable": {
            "type": "object",
            "properties": {
                "authorResponse": {
                    "description": "The author response associated with this review round, if any.",
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "reviewRoundId": {
                            "type": "integer"
                        },
                        "response": {
                            "type": "string"
                        },
                        "submittedByUser": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "fullName": {
                                    "type": "string"
                                }
                            }
                        },
                        "associatedAuthors": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "integer"
                                },
                                "fullName": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "id": {
                    "type": "integer"
                },
                "publicationId": {
                    "type": "integer"
                },
                "round": {
                    "type": "integer"
                },
                "stageId": {
                    "type": "integer"
                },
                "statusId": {
                    "type": "integer"
                }
            }
        },
        "RorEditable": {
            "type": "object",
            "properties": {
                "displayLocale": {
                    "type": "string",
                    "description": "The display language on ror.org of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^((([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?)|(no_lang_code))$\/"
                    ]
                },
                "isActive": {
                    "type": "boolean",
                    "description": "Whether this institution is active or inactive.",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                },
                "searchPhrase": {
                    "type": "string",
                    "description": "Search phrase for lookups, which consists of ROR ID and all names.",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "RorSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "displayLocale": {
                    "type": "string",
                    "description": "The display language on ror.org of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^((([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?)|(no_lang_code))$\/"
                    ]
                },
                "id": {
                    "type": "integer",
                    "description": "The unique ID of this ROR record in the database.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "isActive": {
                    "type": "boolean",
                    "description": "Whether this institution is active or inactive.",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "ror": {
                    "type": "string",
                    "description": "The [ROR](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/) ID of this institution.",
                    "apiSummary": true,
                    "validation": [
                        "nullable",
                        "regex:#^https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror\\.org\/0[^ILOU]{6}\\d{2}$#"
                    ]
                }
            }
        },
        "SectionEditable": {
            "type": "object",
            "properties": {
                "abbrev": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "abstractsNotRequired": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "editorRestricted": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "hideAuthor": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "hideTitle": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "identifyType": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "isInactive": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "metaIndexed": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "metaReviewed": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "policy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewFormId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sequence": {
                    "type": "integer",
                    "apiSummary": true
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "wordCount": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "SectionSummary": {
            "type": "object",
            "properties": {
                "abbrev": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "abstractsNotRequired": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "editorRestricted": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "hideAuthor": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "hideTitle": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true
                },
                "identifyType": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "isInactive": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "metaIndexed": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "metaReviewed": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "policy": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "reviewFormId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "sequence": {
                    "type": "integer",
                    "apiSummary": true
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "wordCount": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "SiteEditable": {
            "type": "object",
            "properties": {
                "about": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "announcementsIntroduction": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "compressStatsLogs": {
                    "type": "boolean",
                    "description": "Whether or not to compress usage statistics log files after they have been processed and archived.",
                    "default": false
                },
                "contactEmail": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "contactName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "counterR5StartDate": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "disableSharedReviewerStatistics": {
                    "type": "boolean",
                    "description": "Specify whether reviewer statistics can be shared with other contexts of the installation.",
                    "default": false
                },
                "enableAnnouncements": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "enableBulkEmails": {
                    "type": "array",
                    "description": "Which hosted journals, presses or preprint servers are allowed to send bulk emails.",
                    "items": {
                        "type": "integer"
                    }
                },
                "enableGeoUsageStats": {
                    "type": "string",
                    "description": "Whether to track usage statistics by location, and whether to track at the country, region or city level.",
                    "default": "disabled",
                    "validation": [
                        "in:disabled,country,country+region,country+region+city"
                    ],
                    "enum": [
                        "disabled",
                        "country",
                        "country+region",
                        "country+region+city"
                    ]
                },
                "enableInstitutionUsageStats": {
                    "type": "boolean",
                    "description": "Whether to track usage statistics by institutions. Requires institutional IP ranges to be configured.",
                    "default": false
                },
                "installedLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                        ]
                    }
                },
                "isSiteSushiPlatform": {
                    "type": "boolean",
                    "description": "Whether or not to designate the site as the platform in COUNTER SUSHI statistics. Set this to true when all of the contexts (journals, presses or servers) of this site are published, owned or operated by the same provider.",
                    "default": false
                },
                "isSushiApiPublic": {
                    "type": "boolean",
                    "description": "Whether or not the access to the COUNTER SUSHI statistics API is public. If false, only users with admin or manager roles can access the API.",
                    "default": true
                },
                "keepDailyUsageStats": {
                    "type": "boolean",
                    "description": "Whether to retain daily usage stats or consolidate monthly stats. Daily stats can quickly result in millions of database rows for large installs with lots of submissions.",
                    "default": false
                },
                "minPasswordLength": {
                    "type": "integer",
                    "validation": [
                        "min:4"
                    ]
                },
                "numAnnouncementsHomepage": {
                    "type": "integer",
                    "validation": [
                        "nullable",
                        "min:0"
                    ]
                },
                "orcidApiType": {
                    "type": "string",
                    "validation": [
                        "nullable",
                        "in:publicProduction,publicSandbox,memberProduction,memberSandbox"
                    ],
                    "enum": [
                        "publicProduction",
                        "publicSandbox",
                        "memberProduction",
                        "memberSandbox"
                    ]
                },
                "orcidClientId": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidClientSecret": {
                    "type": "string",
                    "default": "",
                    "encrypt": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidCustomRedirectBaseUrl": {
                    "type": "string",
                    "default": "",
                    "validation": [
                        "nullable",
                        "url"
                    ]
                },
                "orcidEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Whether ORCID functionality is enabled",
                    "validation": [
                        "nullable"
                    ]
                },
                "pageFooter": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "pageHeaderTitleImage": {
                    "type": "object",
                    "multilingual": true,
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "type": "object",
                        "properties": [],
                        "en": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        },
                        "fr_CA": {
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer",
                                    "writeOnly": true
                                },
                                "name": {
                                    "type": "string"
                                },
                                "uploadName": {
                                    "type": "string"
                                },
                                "width": {
                                    "type": "integer"
                                },
                                "height": {
                                    "type": "integer"
                                },
                                "dateUploaded": {
                                    "type": "string"
                                },
                                "altText": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                },
                "passwordUncompromisedEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable password verification against compromised password databases"
                },
                "primaryLocale": {
                    "type": "string",
                    "validation": [
                        "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                    ]
                },
                "privacyStatement": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "rateLimitDecaySeconds": {
                    "type": "integer",
                    "default": 300,
                    "description": "Seconds until rate limit resets",
                    "validation": [
                        "nullable",
                        "min:60"
                    ]
                },
                "rateLimitEnabled": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable rate limiting for login and password reset"
                },
                "rateLimitMaxAttempts": {
                    "type": "integer",
                    "default": 5,
                    "description": "Maximum attempts before rate limiting is triggered",
                    "validation": [
                        "nullable",
                        "min:1"
                    ]
                },
                "redirectContextId": {
                    "type": "integer",
                    "validation": [
                        "nullable"
                    ]
                },
                "sidebar": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "alpha_dash"
                        ]
                    }
                },
                "styleSheet": {
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "temporaryFileId": {
                            "type": "integer",
                            "writeOnly": true
                        },
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "dateUploaded": {
                            "type": "string"
                        }
                    }
                },
                "supportedLocales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                        ]
                    }
                },
                "sushiPlatformID": {
                    "type": "string",
                    "description": "The platform ID for COUNTER SUSHI statistics. Required when isSiteSushiPlatform is true.",
                    "validation": [
                        "regex:#^[a-zA-Z0-9._\/]{1,17}$#",
                        "nullable"
                    ]
                },
                "themePluginPath": {
                    "type": "string",
                    "default": "default"
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "uniqueSiteId": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                }
            }
        },
        "SubmissionEditable": {
            "type": "object",
            "properties": {
                "availableEditorialDecisions": {
                    "description": "The editorial decisions that are available for this stage.",
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "stageId": {
                                "type": "integer"
                            },
                            "id": {
                                "type": "integer"
                            },
                            "label": {
                                "type": "string"
                            }
                        }
                    }
                },
                "commentsForTheEditors": {
                    "type": "string",
                    "description": "Optional. Comments from the submitting author to the editors. This is only available for submissions that have not yet been submitted. Once submitted, the message is converted to a discussion and you can not read or write to this property.",
                    "validation": [
                        "nullable"
                    ]
                },
                "issueToBePublished": {
                    "type": "object",
                    "properties": {
                        "id": {
                            "type": "integer"
                        },
                        "label": {
                            "type": "string"
                        }
                    },
                    "apiSummary": true
                },
                "locale": {
                    "type": "string",
                    "description": "The primary language of this submission.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "sectionId": {
                    "type": "integer",
                    "description": "The section this submission should be assigned to. This can only be passed when creating a new submission and the data is assigned to the first publication. After the submission is created, edit the publication to change the `sectionId`.",
                    "writeOnly": true
                },
                "userGroupId": {
                    "type": "integer",
                    "description": "Optional. The submitting user will be assigned to the submission in the user group under which they submit. Leave this empty to have the user automatically assigned as an author, when an author user group allows self-registration. Changing this property will have no effect after a submission is submitted.",
                    "writeOnly": true
                }
            }
        },
        "SubmissionSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "description": "A URL to this object in the REST API.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "description": "The ID of the context this submission was created in.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "currentPublicationId": {
                    "type": "integer",
                    "description": "Which publication is the latest published version.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "dateLastActivity": {
                    "type": "string",
                    "description": "The last time activity was recorded related to this submission.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "dateSubmitted": {
                    "type": "string",
                    "description": "The date this submission was submitted.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "editorAssigned": {
                    "type": "boolean",
                    "description": "Whether deciding editor has been assigned to the submission.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "description": "The ID of this submission.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "issueToBePublished": {
                    "type": "object",
                    "properties": [],
                    "apiSummary": true
                },
                "lastModified": {
                    "type": "string",
                    "description": "The last time a modification was made to this submission or any of its associated objects.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "locale": {
                    "type": "string",
                    "description": "The primary language of this submission.",
                    "apiSummary": true,
                    "validation": [
                        "regex:\/^([A-Za-z]{2,4})(?<sc>[_-]([A-Za-z]{4,5}|[0-9]{4}))?([_-]([A-Za-z]{2}|[0-9]{3}))?(@[a-z]{2,30}(?&sc)?)?$\/"
                    ]
                },
                "publications": {
                    "type": "array",
                    "description": "A list of publications that have been created for this submission.",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/Publication"
                    }
                },
                "recommendationsIn": {
                    "type": "boolean",
                    "description": "Whether all recommending editors have submitted a recommendation.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "reviewersNotAssigned": {
                    "type": "boolean",
                    "description": "Whether all needed reviewers are assigned to the submission. Related to the `numReviewsPerSubmission` context setting.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "revisionsRequested": {
                    "type": "boolean",
                    "description": "There is a revisions requested decision in the current review round and no revisions have been uploaded to that round.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "revisionsSubmitted": {
                    "type": "boolean",
                    "description": "There is a revisions requested decision in the current review round and 1 or more revision files have been uploaded to that round.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "scheduledIn": {
                    "type": "integer",
                    "description": "The submission status is `STATUS_SCHEDULED`. It shows the issue it is scheduled in.",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "stageId": {
                    "type": "integer",
                    "description": "The stage of the editorial workflow that this submission is currently in. One of the `WORKFLOW_STAGE_ID_` constants. Default is `WORKFLOW_STAGE_ID_SUBMISSION`.",
                    "apiSummary": true,
                    "default": 1,
                    "writeDisabledInApi": true,
                    "validation": [
                        "min:1",
                        "max:5"
                    ]
                },
                "status": {
                    "type": "integer",
                    "description": "Whether the submission is Published, Declined, Scheduled or Queued (still in the workflow). One of the `PKPSubmission::STATUS_*` constants. Default is `PKPSubmission::STATUS_QUEUED`.",
                    "apiSummary": true,
                    "default": 1,
                    "writeDisabledInApi": true,
                    "validation": [
                        "in:1,2,3,4,5"
                    ],
                    "enum": [
                        1,
                        2,
                        3,
                        4,
                        5
                    ]
                },
                "statusLabel": {
                    "type": "string",
                    "description": "A human-readable version of the submission's status. It will be Published, Declined, Queued (still in the workflow) or Scheduled.",
                    "readOnly": true,
                    "apiSummary": true
                },
                "submissionProgress": {
                    "type": "string",
                    "description": "This value tracks the submission's progress in the submission wizard. It will be set to `start` or the current step when a submission is in progress. After it is submitted, this will be an empty string, indicating it is ready for an editor's consideration.",
                    "apiSummary": true,
                    "default": "start",
                    "writeDisabledInApi": true,
                    "validation": [
                        "in:,start,details,files,contributors,editors,review"
                    ],
                    "enum": [
                        "",
                        "start",
                        "details",
                        "files",
                        "contributors",
                        "editors",
                        "review"
                    ]
                },
                "urlAuthorWorkflow": {
                    "type": "string",
                    "description": "A URL to this submission for the author's editorial workflow.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlEditorialWorkflow": {
                    "type": "string",
                    "description": "A URL to this submission for the editors' and assistants' editorial workflow.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlPublished": {
                    "type": "string",
                    "description": "A URL to view the published version of this submission. If it is not published, the URL will point to the location where it will be published in the future.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlSubmissionWizard": {
                    "type": "string",
                    "description": "A URL to the submission wizard for this submission. The submission wizard can not be accessed after a submission has been submitted.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "urlWorkflow": {
                    "type": "string",
                    "description": "A URL to this submission for the workflow most appropriate for the current user. It will match the `urlAuthorWorkflow` or `urlEditorialWorkflow`, depending on what roles the user is assigned.",
                    "apiSummary": true,
                    "readOnly": true
                }
            }
        },
        "SubmissionFileEditable": {
            "type": "object",
            "properties": {
                "assocId": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "Used with `assocType` to associate this file with an object such as a galley.",
                    "validation": [
                        "nullable"
                    ]
                },
                "assocType": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "Used with `assocId` to associate this file with an object such as a galley. One of the following constants: `ASSOC_TYPE_SUBMISSION_FILE` (dependent files), `ASSOC_TYPE_REVIEW_ASSIGNMENT` (files uploaded by a reviewer), `ASSOC_TYPE_NOTE` (files uploaded with a discussion), `ASSOC_TYPE_REPRESENTATION` (files uploaded to a galley or publication format), `ASSOC_TYPE_REVIEW_ROUND` (review files and revisions for a particular review round).",
                    "validation": [
                        "in:515,517,520,521,523,1048588"
                    ],
                    "enum": [
                        515,
                        517,
                        520,
                        521,
                        523,
                        1048588
                    ]
                },
                "caption": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "A caption for this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "copyrightOwner": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The copyright owner of this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "createdAt": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The date this submission file object was created in the system. Set automatically by the software.",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "creator": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "credit": {
                    "type": "string",
                    "description": "An attribution for this file, such as a photographer's name. Used with artwork such as images.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "dateCreated": {
                    "type": "string",
                    "description": "Public metadata about when this content was created. Used with supplementary files.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "file": {
                    "type": "string",
                    "format": "binary",
                    "writeOnly": true
                },
                "fileId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "fileStage": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "in:2,3,4,5,6,7,8,9,10,11,13,15,17,18,19,20,21,22,23"
                    ],
                    "enum": [
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        13,
                        15,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23
                    ]
                },
                "genreId": {
                    "type": "integer",
                    "description": "The genre ID of this file",
                    "apiSummary": true
                },
                "ithenticateFileId": {
                    "type": "integer",
                    "description": "The file id from the files table",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateId": {
                    "type": "string",
                    "description": "The iThenticate submission id for submission file",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateProcessingError": {
                    "type": "string",
                    "description": "The most recent iThenticate processing error for this submission file; overwritten on a new failure and cleared on the next successful re-check",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateRevisionHistory": {
                    "type": "string",
                    "description": "The similarity check action history on the previous revisions of this submission file",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateSimilarityResult": {
                    "type": "string",
                    "description": "The similarity check result for this submission file in json format",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateSimilarityScheduled": {
                    "type": "boolean",
                    "description": "The status which identify if the iThenticate similarity process has been scheduled for this submission file",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "ithenticateSubmissionAcceptedAt": {
                    "type": "string",
                    "description": "The timestamp at which this submission file successfully accepted at iThenticate service end",
                    "writeOnly": true,
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "language": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The language of this file if it contains text. Used with supplementary files.",
                    "validation": [
                        "nullable"
                    ]
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "publisher": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "source": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sourceSubmissionFileId": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "When a submission file is promoted from one stage to another, this property identifies the source file from which this file was promoted. Default: `null`."
                },
                "sponsor": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subject": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "summaryOfChanges": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "Free-text summary of what changed in this revision. Shown on Review Revision uploads only.",
                    "validation": [
                        "nullable"
                    ]
                },
                "terms": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "Licensing terms for this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "updatedAt": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "When this object was last updated.",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "uploaderUserId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "variantGroupId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "variantType": {
                    "type": "string",
                    "description": "One of the MediaVariantType enums.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "viewable": {
                    "type": "boolean",
                    "apiSummary": true
                }
            }
        },
        "SubmissionFileSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "format": "uri",
                    "readOnly": true,
                    "apiSummary": true
                },
                "assocId": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "Used with `assocType` to associate this file with an object such as a galley.",
                    "validation": [
                        "nullable"
                    ]
                },
                "assocType": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "Used with `assocId` to associate this file with an object such as a galley. One of the following constants: `ASSOC_TYPE_SUBMISSION_FILE` (dependent files), `ASSOC_TYPE_REVIEW_ASSIGNMENT` (files uploaded by a reviewer), `ASSOC_TYPE_NOTE` (files uploaded with a discussion), `ASSOC_TYPE_REPRESENTATION` (files uploaded to a galley or publication format), `ASSOC_TYPE_REVIEW_ROUND` (review files and revisions for a particular review round).",
                    "validation": [
                        "in:515,517,520,521,523,1048588"
                    ],
                    "enum": [
                        515,
                        517,
                        520,
                        521,
                        523,
                        1048588
                    ]
                },
                "caption": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "A caption for this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "copyrightOwner": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The copyright owner of this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "createdAt": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The date this submission file object was created in the system. Set automatically by the software.",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "creator": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "credit": {
                    "type": "string",
                    "description": "An attribution for this file, such as a photographer's name. Used with artwork such as images.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "dateCreated": {
                    "type": "string",
                    "description": "Public metadata about when this content was created. Used with supplementary files.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "documentType": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "fileId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "fileStage": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "in:2,3,4,5,6,7,8,9,10,11,13,15,17,18,19,20,21,22,23"
                    ],
                    "enum": [
                        2,
                        3,
                        4,
                        5,
                        6,
                        7,
                        8,
                        9,
                        10,
                        11,
                        13,
                        15,
                        17,
                        18,
                        19,
                        20,
                        21,
                        22,
                        23
                    ]
                },
                "genreId": {
                    "type": "integer",
                    "description": "The genre ID of this file",
                    "apiSummary": true
                },
                "genreIsDependent": {
                    "type": "boolean",
                    "description": "Whether or not this is a dependent file, such as images displayed by an HTML file, that are displayed with published content.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreIsSupplementary": {
                    "type": "boolean",
                    "description": "Whether or not this is a supplementary file, such as data sets and research materials, that are displayed separately from the main publication files.",
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreMetadataType": {
                    "type": "string",
                    "description": "One of Genre::GENRE_CATEGORY_*",
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreName": {
                    "type": "string",
                    "description": "The genre name of this file, such as Article Text or Data Set.",
                    "isMultilingual": true,
                    "apiSummary": true,
                    "readOnly": true
                },
                "genreSupportsFileVariants": {
                    "type": "boolean",
                    "description": "Whether submission file genre supports file variants types, e.g. 'web' or 'high resolution'",
                    "apiSummary": true,
                    "readOnly": true
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "language": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The language of this file if it contains text. Used with supplementary files.",
                    "validation": [
                        "nullable"
                    ]
                },
                "locale": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "The primary locale of the submission this file is attached to. This locale is used as the fallback when a language is missing from a multilingual property.",
                    "readOnly": true
                },
                "mimetype": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "path": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "publisher": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "source": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "sourceSubmissionFileId": {
                    "type": "integer",
                    "apiSummary": true,
                    "description": "When a submission file is promoted from one stage to another, this property identifies the source file from which this file was promoted. Default: `null`."
                },
                "sponsor": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "subject": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "submissionId": {
                    "type": "integer",
                    "apiSummary": true
                },
                "summaryOfChanges": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "Free-text summary of what changed in this revision. Shown on Review Revision uploads only.",
                    "validation": [
                        "nullable"
                    ]
                },
                "terms": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "Licensing terms for this file. Used with artwork such as images.",
                    "validation": [
                        "nullable"
                    ]
                },
                "updatedAt": {
                    "type": "string",
                    "apiSummary": true,
                    "description": "When this object was last updated.",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "uploaderUserId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "uploaderUserName": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "url": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "variantGroupId": {
                    "type": "integer",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "variantType": {
                    "type": "string",
                    "description": "One of the MediaVariantType enums.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "viewable": {
                    "type": "boolean",
                    "apiSummary": true
                }
            }
        },
        "UserEditable": {
            "type": "object",
            "properties": {
                "affiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "apiKey": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "apiKeyEnabled": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "authStr": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "billingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "country": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "dateLastEmail": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "dateLastLogin": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "dateRegistered": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s"
                    ]
                },
                "dateValidated": {
                    "type": "string",
                    "validation": [
                        "date:Y-m-d H:i:s",
                        "nullable"
                    ]
                },
                "disabled": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "disabledReason": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "displayInitials": {
                    "description": "The initials that will be displayed for a user.",
                    "type": "string",
                    "apiSummary": true
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "gossip": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "inlineHelp": {
                    "type": "boolean",
                    "validation": [
                        "nullable"
                    ]
                },
                "locales": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "validation": [
                            "regex:\/^([a-z]{2})((_[A-Z]{2})?)(@[a-z]{0,})?$\/"
                        ]
                    }
                },
                "mailingAddress": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "mustChangePassword": {
                    "type": "boolean"
                },
                "orcid": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "orcid",
                        "nullable"
                    ]
                },
                "orcidAccessDenied": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessExpiresOn": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessScope": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidAccessToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidEmailToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidRefreshToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidReviewPutCode": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "password": {
                    "type": "string",
                    "writeOnly": true
                },
                "phone": {
                    "type": "string",
                    "validation": [
                        "nullable"
                    ]
                },
                "preferredAvatarInitials": {
                    "type": "string",
                    "description": "An optional field for users to specify the initials that they want to be displayed in their avatars.",
                    "multilingual": false,
                    "apiSummary": false,
                    "validation": [
                        "nullable",
                        "max:2"
                    ]
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "profileImage": {
                    "type": "object",
                    "validation": [
                        "nullable"
                    ],
                    "properties": {
                        "dateUploaded": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "height": {
                            "type": "integer"
                        },
                        "width": {
                            "type": "integer"
                        }
                    }
                },
                "rememberToken": {
                    "type": "string",
                    "writeOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "signature": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "url": {
                    "type": "string",
                    "validation": [
                        "url",
                        "nullable"
                    ]
                },
                "userName": {
                    "type": "string",
                    "apiSummary": true
                }
            }
        },
        "UserSummary": {
            "type": "object",
            "properties": {
                "_href": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "affiliation": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "biography": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "canLoginAs": {
                    "type": "boolean",
                    "description": "Whether the current user can log in as this user.",
                    "readOnly": true,
                    "apiSummary": true,
                    "apiDetail": true
                },
                "canMergeUsers": {
                    "type": "boolean",
                    "description": "Whether the current user can merge this user account with another.",
                    "readOnly": true,
                    "apiSummary": true,
                    "apiDetail": true
                },
                "disabled": {
                    "type": "boolean",
                    "apiSummary": true
                },
                "displayInitials": {
                    "description": "The initials that will be displayed for a user.",
                    "type": "string",
                    "apiSummary": true
                },
                "email": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "email_or_localhost"
                    ]
                },
                "familyName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "fullName": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true
                },
                "givenName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "gossip": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "groups": {
                    "type": "array",
                    "apiSummary": true,
                    "readOnly": true,
                    "items": {
                        "$ref": "#\/definitions\/UserGroup"
                    }
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "interests": {
                    "type": "array",
                    "readOnly": true,
                    "apiSummary": true,
                    "items": {
                        "$ref": "#\/definitions\/UserInterest"
                    }
                },
                "orcid": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "orcid",
                        "nullable"
                    ]
                },
                "orcidAccessExpiresOn": {
                    "type": "string",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidDisplayValue": {
                    "type": "string",
                    "apiSummary": true,
                    "readOnly": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "orcidIsVerified": {
                    "type": "boolean",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "preferredPublicName": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "stageAssignments": {
                    "apiSummary": true,
                    "readOnly": true,
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "stageAssignmentId": {
                                "type": "integer"
                            },
                            "stageAssignmentUserGroup": {
                                "type": "object",
                                "$ref": "#\/definitions\/UserGroup"
                            },
                            "stageAssignmentStageId": {
                                "type": "integer"
                            },
                            "stageAssignmentStage": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "string"
                                    },
                                    "label": {
                                        "type": "string"
                                    }
                                }
                            },
                            "canChangeMetadata": {
                                "type": "boolean"
                            },
                            "recommendOnly": {
                                "type": "boolean"
                            }
                        }
                    }
                },
                "userName": {
                    "type": "string",
                    "apiSummary": true
                }
            }
        },
        "UserGroupEditable": {
            "type": "object",
            "properties": {
                "abbrev": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "abbrevLocaleKey": {
                    "type": "string",
                    "origin": "setting",
                    "description": "The locale key of the group abbreviation.",
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true
                },
                "isDefault": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "masthead": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "nameLocaleKey": {
                    "type": "string",
                    "origin": "setting",
                    "description": "The locale key of the group name.",
                    "apiSummary": true
                },
                "namePlural": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "permitMetadataEdit": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "permitSelfRegistration": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "permitSettings": {
                    "type": "boolean",
                    "origin": "primary"
                },
                "recommendOnly": {
                    "type": "boolean",
                    "origin": "setting"
                },
                "roleId": {
                    "type": "integer",
                    "origin": "primary",
                    "validation": [
                        "in:16,1,17,65536,4096,4097,1048576,209715"
                    ],
                    "enum": [
                        16,
                        1,
                        17,
                        65536,
                        4096,
                        4097,
                        1048576,
                        209715
                    ]
                }
            }
        },
        "UserGroupSummary": {
            "type": "object",
            "properties": {
                "abbrev": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "abbrevLocaleKey": {
                    "type": "string",
                    "origin": "setting",
                    "description": "The locale key of the group abbreviation.",
                    "apiSummary": true
                },
                "contextId": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true
                },
                "id": {
                    "type": "integer",
                    "origin": "primary",
                    "apiSummary": true
                },
                "name": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "nameLocaleKey": {
                    "type": "string",
                    "origin": "setting",
                    "description": "The locale key of the group name.",
                    "apiSummary": true
                }
            }
        },
        "CategoryEditable": {
            "type": "object",
            "properties": {
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "image": {
                    "type": "object",
                    "properties": {
                        "name": {
                            "type": "string"
                        },
                        "uploadName": {
                            "type": "string"
                        },
                        "thumbnailName": {
                            "type": "string"
                        },
                        "thumbnailWidth": {
                            "type": "integer"
                        },
                        "thumbnailHeight": {
                            "type": "integer"
                        },
                        "dateUploaded": {
                            "type": "string"
                        },
                        "altText": {
                            "type": "string",
                            "validation": [
                                "nullable"
                            ]
                        }
                    }
                },
                "path": {
                    "type": "string",
                    "description": "A URL slug for this category.",
                    "apiSummary": true
                },
                "sortOption": {
                    "type": "string",
                    "description": "The sorting order for contents of this category.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "subEditors": {
                    "description": "Key\/value pair where each key is a group ID and the value is an array of user IDs to assign under that group. Example: subEditors[1] = [2, 4] assigns users 2 and 4 to group 1.",
                    "type": "object",
                    "writeOnly": true,
                    "apiSummary": false,
                    "properties": []
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        },
        "CategorySummary": {
            "type": "object",
            "properties": {
                "assignedEditors": {
                    "description": "List of editors automatically assigned to this category.",
                    "readOnly": true,
                    "apiSummary": true,
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "editorDisplayInitials": {
                                "type": "string"
                            },
                            "userGroupIds": {
                                "description": "The IDs of the user groups for which the editor is assigned.",
                                "type": "array"
                            }
                        }
                    }
                },
                "contextId": {
                    "type": "integer",
                    "description": "The journal, press or preprint server ID.",
                    "apiSummary": true,
                    "writeDisabledInApi": true
                },
                "description": {
                    "$ref": "#\/definitions\/LocaleObject"
                },
                "id": {
                    "type": "integer",
                    "apiSummary": true,
                    "readOnly": true
                },
                "localizedTitle": {
                    "type": "string",
                    "description": "The localized title of the category.",
                    "apiSummary": true,
                    "readOnly": true,
                    "writeDisabledInApi": true
                },
                "parentId": {
                    "type": "integer",
                    "description": "The optional ID of the parent category.",
                    "apiSummary": true,
                    "writeDisabledInApi": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "path": {
                    "type": "string",
                    "description": "A URL slug for this category.",
                    "apiSummary": true
                },
                "sortOption": {
                    "type": "string",
                    "description": "The sorting order for contents of this category.",
                    "apiSummary": true,
                    "validation": [
                        "nullable"
                    ]
                },
                "title": {
                    "$ref": "#\/definitions\/LocaleObject"
                }
            }
        }
    },
    "paths": {
        "\/submissions": {
            "get": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Get a list of submissions.",
                "description": "See `\/submissions\/{submissionId}` for notes about submission properties.",
                "parameters": [
                    {
                        "name": "assignedTo",
                        "description": "Filter results by those assigned to one or more user ids. All users except managers and admins are automatically restricted to assigned submissions and do not need to pass this parameter.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "categoryIds",
                        "description": "Filter results by those assigned to one of these categories.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "count",
                        "description": "How many results to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 20
                    },
                    {
                        "name": "daysInactive",
                        "description": "Filter the results by those which have not had activity for the last X days.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "isIncomplete",
                        "description": "Filter the results by those for which the author has not yet completed the submission process.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "isOverdue",
                        "description": "Filter the results by those for which a reviewer has missed a deadline.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter the results by those with one or more publications assigned to an issue.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests. A `count` of `10` and `offset` of `15` will return results `15` to `25`.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderBy",
                        "description": "Order the results returned.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "dateSubmitted",
                        "enum": [
                            "datePublished",
                            "dateSubmitted",
                            "lastActivity",
                            "lastModified",
                            "sequence",
                            "title"
                        ]
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter the results by a search phrase matched against the title and authors.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter the results by those with one or more publications assigned to a section.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "stageIds",
                        "description": "Filter results by those currently in one of these workflow stages. Expects one of the `WORKFLOW_STAGE_ID_*` constants.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer",
                            "enum": [
                                1,
                                3,
                                4,
                                5
                            ]
                        }
                    },
                    {
                        "name": "status",
                        "description": "Filter results by one or more submission statuses. Must match the value of one of the `PKPSubmission::STATUS_QUEUED`, `PKPSubmission::STATUS_SCHEDULED`, `PKPSubmission::STATUS_PUBLISHED` or `PKPSubmission::STATUS_DECLINED` constants.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer",
                            "enum": [
                                1,
                                3,
                                4,
                                5
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of requested submissions.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/SubmissionSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access submissions assigned to the user requested in the `assignedTo` parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Create a new submission.",
                "parameters": [
                    {
                        "description": "Details about the submission that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the submission that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}": {
            "get": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Get a submission by ID.",
                "description": "* Unpublished submissions are only returned for assigned participants, editors and admins.\n* `abstract` includes HTML markup.\n* `pages` is usually a `string`, but in some cases it may return an array of arrays. Each array contains two items: the start and end page. Example: `[[25, 31], [45, 62]]`.\n* `submissionProgress` will be a non-empty string if the submission is incomplete.\n* `stages`, `reviewRounds` and `reviewAssignments` will only be returned for participants assigned to the submission.\n* `reviewAssignments` only expose user-identifying information for editors and admins.\n* `reviewerSuggestions` lists reviewer suggestions made by the author at submission time. This array is read-only here; manage suggestions via the `\/submissions\/{submissionId}\/reviewers\/suggestions` endpoints.\n* `scheduledIn` is the ID of the issue this submission has been scheduled into, when applicable.\n* `issueToBePublished` is a summary of the issue this submission will appear in once it is published.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission details.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access this submissions.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Edit a submission.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the submission that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission that was just edited with the new values after the update has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This error indicates one of the following:\n* You are not allowed to edit a submission from the site-wide endpoint. You must use a context endpoint.\n* You are not allowed to change the context of a submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Delete a submission.",
                "description": "Only journal managers and subeditors can make a request to this endpoint.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the deleted submission.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to delete this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/saveForLater": {
            "put": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Save a submission for later",
                "description": "Sets the current step of the submission in the submission wizard and sends an email to the submitting author with a link to resume their submission. This API endpoint does not save any data about the submission. Use the regular `PUT` endpoints to save data for submissions, publications, files, and authors.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "step": {
                                    "description": "The step of the submission wizard to open when the author resumes their submission.",
                                    "type": "string",
                                    "enum": [
                                        "details",
                                        "files",
                                        "contributors",
                                        "editors",
                                        "review"
                                    ]
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission that was saved for later.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This error indicates that you are not allowed to edit this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/submit": {
            "put": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Submit a submission",
                "description": "Submits a submission for editorial review. Any automated editorial assignments, comments for the editor, or other submission events will be triggered.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "_validateOnly": {
                                    "description": "When `true`, the validation checks will be performed but the submission will not be submitted.",
                                    "in": "query",
                                    "required": false,
                                    "type": "boolean"
                                },
                                "confirmCopyright": {
                                    "description": "Pass `true` to indicate that the author has agreed to the copyright notice. An entry will be added to the submission's activity log to record the author's acceptance of the copyright agreement.",
                                    "type": "boolean",
                                    "required": "false"
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission that was saved for later. Or, if the `_validateOnly` query param is passed and no validation errors are found, the response body will be empty.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Any validation errors that must be fixed before this submission can be submitted. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This error indicates that you are not allowed to edit this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/nextAvailableVersion": {
            "get": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Get next available version number for submission",
                "description": "Retrieve the next available version number for a submission. This helps authors and editors understand what version number will be assigned if they create a new version of a publication. The result considers whether a minor version bump is requested and the selected `versionStage`.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "versionStage",
                        "in": "query",
                        "type": "string",
                        "enum": [
                            "AO",
                            "PMUR",
                            "VoR"
                        ],
                        "description": "Enum representing the version stage"
                    },
                    {
                        "name": "versionIsMinor",
                        "in": "query",
                        "type": "boolean",
                        "default": true,
                        "description": "Whether to use a minor version bump"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Next available version info",
                        "schema": {
                            "$ref": "#\/definitions\/PublicationVersionInfo"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/decisions": {
            "get": {
                "tags": [
                    "Submissions \/ Decisions"
                ],
                "summary": "Get decisions for a submission.",
                "description": "Get the editorial decisions that have been recorded for this submission.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "decisionTypes",
                        "description": "Filter results by the decision type. List of the `Decision::*` constants.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "editorIds",
                        "description": "Filter results by specific editor IDs.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "reviewRoundId",
                        "description": "Filter results by a specific review round ID",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "description": "Filter results by a specific workflow stage Id",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success.",
                        "description": "An array of the decisions recorded for this submission.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/DecisionSummary"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view decisions for the requested submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions \/ Decisions"
                ],
                "summary": "Record a decision for a submission.",
                "description": "Record a new editorial decision for this submission. This endpoint is configured to support customizable actions when recording a decision. Each decision supports pre-defined actions, but plugins can extend each decision to take additional actions or create new decisions.\n\nMost of the built-in decisions use one or more actions. View the \"Request samples\" for this endpoint to see which decisions use which actions. Most decisions use one or more of the following types:\n\n| Action | Description |\n| --- | --- |\n| Email | Details about the email message, recipients and attachments. If the example request body includes an empty `recipients` array, that means the decision does not allow the recipients to be modified. It is configured to always send to the same recipients. For example, most emails to notify authors will automatically be sent to the assigned authors and co-authors, depending on how the journal has configured their email notification settings. |\n| Form | A form payload that includes the action `id` and any input data from the form. |\n\nA custom decision is not restricted to these types. Any data can be sent through the `actions` property and handled on the server. Learn more about [Decisions](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/documentation\/en\/decisions).",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application\/json": {
                            "schema": {
                                "$ref": "#\/definitions\/DecisionEditable"
                            },
                            "examples": {
                                "APP\\decision\\types\\Accept": {
                                    "summary": "Accept Submission",
                                    "value": {
                                        "decision": 2,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyReviewers",
                                                "locale": "en",
                                                "recipients": [
                                                    1,
                                                    2
                                                ],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "requestPayment": true,
                                                "id": "payment"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\BackFromCopyediting": {
                                    "summary": "Move to Submission",
                                    "value": {
                                        "decision": 30,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\BackFromProduction": {
                                    "summary": "Move To Copyediting",
                                    "value": {
                                        "decision": 29,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\CancelReviewRound": {
                                    "summary": "Cancel Review Round",
                                    "value": {
                                        "decision": 31,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyReviewers",
                                                "locale": "en",
                                                "recipients": [
                                                    1,
                                                    2
                                                ],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\Decline": {
                                    "summary": "Decline Submission",
                                    "value": {
                                        "decision": 6,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyReviewers",
                                                "locale": "en",
                                                "recipients": [
                                                    1,
                                                    2
                                                ],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\InitialDecline": {
                                    "summary": "Decline Submission",
                                    "value": {
                                        "decision": 8,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\NewExternalReviewRound": {
                                    "summary": "New Review Round",
                                    "value": {
                                        "decision": 14,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RecommendAccept": {
                                    "summary": "Recommend Accept",
                                    "value": {
                                        "decision": 9,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "discussion",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RecommendDecline": {
                                    "summary": "Recommend Decline",
                                    "value": {
                                        "decision": 12,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "discussion",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RecommendResubmit": {
                                    "summary": "Recommend Resubmit for Review",
                                    "value": {
                                        "decision": 11,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "discussion",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RecommendRevisions": {
                                    "summary": "Recommend Revisions",
                                    "value": {
                                        "decision": 10,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "discussion",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RequestRevisions": {
                                    "summary": "Request Revisions",
                                    "value": {
                                        "decision": 4,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyReviewers",
                                                "locale": "en",
                                                "recipients": [
                                                    1,
                                                    2
                                                ],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\Resubmit": {
                                    "summary": "Resubmit for Review",
                                    "value": {
                                        "decision": 5,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyReviewers",
                                                "locale": "en",
                                                "recipients": [
                                                    1,
                                                    2
                                                ],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RevertDecline": {
                                    "summary": "Revert Decline",
                                    "value": {
                                        "decision": 15,
                                        "reviewRound": 123,
                                        "round": 1,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\RevertInitialDecline": {
                                    "summary": "Revert Decline",
                                    "value": {
                                        "decision": 16,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\SendExternalReview": {
                                    "summary": "Send for Review",
                                    "value": {
                                        "decision": 3,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "PKP\\decision\\types\\SendToProduction": {
                                    "summary": "Send To Production",
                                    "value": {
                                        "decision": 7,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            }
                                        ]
                                    }
                                },
                                "APP\\decision\\types\\SkipExternalReview": {
                                    "summary": "Accept and Skip Review",
                                    "value": {
                                        "decision": 17,
                                        "actions": [
                                            {
                                                "attachments": [
                                                    {
                                                        "name": "example-upload.pdf",
                                                        "temporaryFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-submission-file.pdf",
                                                        "submissionFileId": 1,
                                                        "documentType": "pdf"
                                                    },
                                                    {
                                                        "name": "example-library-file.pdf",
                                                        "libraryFileId": 1,
                                                        "documentType": "pdf"
                                                    }
                                                ],
                                                "bcc": "example@pkp.sfu.ca",
                                                "cc": "example@pkp.sfu.ca",
                                                "id": "notifyAuthors",
                                                "locale": "en",
                                                "recipients": [],
                                                "subject": "Example email subject",
                                                "body": "<p>Example email body.<\/p>"
                                            },
                                            {
                                                "requestPayment": true,
                                                "id": "payment"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "x-summary": "Success.",
                        "description": "The decision that was recorded.",
                        "schema": {
                            "$ref": "#\/definitions\/DecisionSummary"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view decisions for the requested submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/files": {
            "get": {
                "tags": [
                    "Submissions \/ Files"
                ],
                "summary": "Get a submission's files.",
                "description": "This will return all of a submission's files that the user is allowed to access, except review attachments and discussion files. A user is allowed to access different file stages depending on their stage assignment.\n* Managers, subeditors and assistants can access all file stages if they are assigned to the matching workflow stage. For example, an assistant assigned to the copyediting stage can access files in `SUBMISSION_FILE_COPYEDIT` and `SUBMISSION_FILE_FINAL`.\n* Authors are restricted to the `SUBMISSION_FILE_SUBMISSION`, `SUBMISSION_FILE_REVIEW_REVISION`, `SUBMISSION_FILE_COPYEDIT` and `SUBMISSION_FILE_PROOF` file stages. For example, an author with access to the copyediting stage will have access to `SUBMISSION_FILE_COPYEDIT` (copyedited files) but not `SUBMISSION_FILE_FINAL` (draft files).\n* Reviewers and readers are not allowed to access this endpoint.\n* Managers who are not assigned to the submission are allowed to access all file stages as though they are assigned to every workflow stage.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "fileStages",
                        "description": "Filter results by those submission files assigned to one or more file stage. One of the `SUBMISSION_FILE_` constants.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "reviewRoundIds",
                        "description": "Filter results by those submission files assigned to one or more review rounds.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success.",
                        "description": "An array of the requested submission files.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/SubmissionFileSummary"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view the requested files.\n\n|Error Code|Description|\n|---|---|\n|`api.403.unauthorized`|You are not allowed to access files for this submission.|\n|`api.submissionFiles.403.unauthorizedFileStageId`|You are not allowed to access files in one or more of the `fileStages` requested.|\n|`api.submissionFiles.403.unauthorizedReviewRound`|You are not allowed to access files in one or more of the `reviewRoundIds` requested.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions \/ Files"
                ],
                "summary": "Create a new submission file.",
                "description": "A user is allowed to upload to different file stages depending on their stage assignments. See the description for `GET \/submissions\/{submissionId}\/files` above. Once a submission has been completed, authors are no longer allowed to upload to `SUBMISSION_FILE_SUBMISSION`. Authors are not allowed to upload to `SUBMISSION_FILE_REVIEW_REVISION` until revisions have been requested.",
                "consumes": [
                    "multipart\/form-data"
                ],
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "Details about the submission file that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFileEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The new submission file.",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFile"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "There was an error when uploading the file or the values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to upload a file to the specified file stage of this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/files\/{submissionFileId}": {
            "get": {
                "tags": [
                    "Submissions \/ Files"
                ],
                "summary": "Get a submission file.",
                "description": "You must pass the correct `stageId` when requesting a file.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "submissionFileId",
                        "in": "path",
                        "description": "Submission File ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "query",
                        "description": "The workflow stage ID of the requested file. For example, `WORKFLOW_STAGE_ID_PRODUCTION`.",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the submission file.",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFile"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the requested file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions \/ Files"
                ],
                "summary": "Edit a submission file.",
                "description": "You must pass the correct `stageId` when editing a file.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "submissionFileId",
                        "in": "path",
                        "description": "Submission File ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "query",
                        "description": "The workflow stage ID of the file to be edited. For example, `WORKFLOW_STAGE_ID_PRODUCTION`.",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the submission file that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFileEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission file that was just edited with the new values after the update has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFile"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "There was an error when uploading the file or the values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to edit the requested file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Submissions \/ Files"
                ],
                "summary": "Delete a submission file.",
                "description": "You must pass the correct `stageId` when deleting a file.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "submissionFileId",
                        "in": "path",
                        "description": "Submission File ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "query",
                        "description": "The workflow stage ID of the file to be edited. For example, `WORKFLOW_STAGE_ID_PRODUCTION`.",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission file that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFile"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to delete the requested file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission or file could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/files\/{submissionFileId}\/copy": {
            "put": {
                "tags": [
                    "Submissions \/ Files"
                ],
                "summary": "Copy a submission file.",
                "description": "Copy a submission file to a new file stage. This is usually used to promote a file from one stage to another. For example, a file in \"Revisions\" can be promoted to \"Files for Copyediting\" so that a copyeditor can begin working with it. Learn more about [File Stages](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/documentation\/en\/submission-files#file-stages).",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "submissionFileId",
                        "in": "path",
                        "description": "Submission File ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "query",
                        "description": "The workflow stage ID of the file to be copied. For example, `WORKFLOW_STAGE_ID_PRODUCTION`.",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "required": [
                                "toFileStage"
                            ],
                            "properties": {
                                "reviewRoundId": {
                                    "type": "integer",
                                    "description": "Optional. The ID of a review round to copy this file to. Only use this when you want to copy a file to a file stage in a particular review round. If omitted, the file will be copied to the latest review round."
                                },
                                "toFileStage": {
                                    "type": "integer",
                                    "description": "One of the `SubmissionFile::SUBMISSION_FILE_*` constants. Learn about [File Stages](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/documentation\/en\/submission-files#file-stages)."
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The new submission file that was created.",
                        "schema": {
                            "$ref": "#\/definitions\/SubmissionFile"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "There was an error when uploading the file or the values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.\n\n| Error Code | Message |\n| --- | --- |\n| `api.submissionFiles.400.noFileStageId` | No parameter `toFileStage` was found in the request body. |\n| `api.submissionFiles.400.invalidFileStage` | The value of `toFileStage` does not match a known file stage. |\n| `api.submissionFiles.400.reviewRoundSubmissionNotMatch` | The `reviewRoundId` specified is not part of this submission. |\n| `api.submissionFiles.400.reviewRoundIdRequired` | No valid review round was found to copy this file to. |",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to copy the requested file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission or file could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/participants": {
            "get": {
                "tags": [
                    "Submissions \/ Participants"
                ],
                "summary": "Get assigned participants.",
                "description": "Get the participants assigned to a submission.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of users assigned to a submission",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/UserSummary"
                            }
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/participants\/{stageId}": {
            "get": {
                "tags": [
                    "Submissions \/ Participants"
                ],
                "summary": "Get assigned participants by stage.",
                "description": "Get all participants assigned to a submission for a specific workflow stage, such as the review or copyediting stage.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "path",
                        "description": "Stage ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of users assigned to the requested stage of the requested submission",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/UserSummary"
                            }
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications": {
            "get": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Get a submission's publications.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of publications for this submission.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/Publication"
                            }
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Create a publication.",
                "description": "Create a new publication for a submission.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "Details about the publication that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/PublicationEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the publication that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}": {
            "get": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Get a publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The publication details",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission or publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Edit a publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the publication that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/PublicationEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The publication that was just edited with the new values after the update has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This error indicates one of the following:\n* The publication you want to edit does not belong to this submission.\n* This publication is published and can not be edited. You must create and publish a new version.\n* You do not have permission to edit this publication.\n* You are not allowed to modify the `status` of a publication. You must use the `\/submissions\/{submissionId}\/publications\/{publicationId}\/publish` and `...\/unpublish` endpoints to modify the status of a publication.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Delete a publication.",
                "description": "Only journal managers and subeditors can make a request to this endpoint.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The publication that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This may mean one of the following:\n* You are not allowed to delete this publication.\n* The publication does not belong to this submission.\n* This publication is published and can not be deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/version": {
            "post": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Create a new version of a publication.",
                "description": "Create a new version of an existing publication. This will clone the current publication and bump its version number. You can optionally specify the `versionStage` (e.g., AO, PMUR, VoR) and whether this is a minor version update using the `versionIsMinor` boolean flag.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "name": "payload",
                        "description": "Optional versioning options.",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "versionStage": {
                                    "type": "string",
                                    "enum": [
                                        "AO",
                                        "PMUR",
                                        "VoR"
                                    ],
                                    "description": "Enum representing the version stage: AO (Author's Original), PMUR (Published Manuscript Under Review), VoR (Version of Record)."
                                },
                                "versionIsMinor": {
                                    "type": "boolean",
                                    "default": true,
                                    "description": "If true, the version bump is minor. Defaults to true."
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the new publication that was created.",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "The publication you want to version does not belong to this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Change publication version",
                "description": "Change the version number of an existing publication. This endpoint is typically used to promote a publication to a new major or minor version. You can optionally pass a `versionStage` to indicate what version type this is (e.g., Author's Original or Version of Record), and whether this is a minor update using `versionIsMinor`.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "versionStage": {
                                    "type": "string",
                                    "enum": [
                                        "AO",
                                        "PMUR",
                                        "VoR"
                                    ],
                                    "description": "Enum representing the version stage: AO (Author's Original), PMUR (Published Manuscript Under Review), VoR (Version of Record)"
                                },
                                "versionIsMinor": {
                                    "type": "boolean",
                                    "default": true,
                                    "description": "If true, the version bump is minor. Defaults to true."
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The updated publication version",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "400": {
                        "description": "Invalid request data",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/publish": {
            "put": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Publish a publication.",
                "description": "If the publication is assigned to an issue that is not yet published, it will be scheduled for publication and the `status` will be set to `PKPSubmission::STATUS_SCHEDULED`. If the issue is already published, it will be published immediately and the `status` will be set to `PKPSubmission::STATUS_PUBLISHED`.\n\nThe publication will be validated against any publishing requirements before it is published and a `400` response will be returned if it fails validation.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the publication that was just published.",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "One or more publication requirements have not been met.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "A 403 response means that the publication you want to version does not belong to this submission or that the publication is already published.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/unpublish": {
            "put": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Unpublish a publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the publication that was just unpublished.",
                        "schema": {
                            "$ref": "#\/definitions\/Publication"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "A 403 response means that the publication you want to version does not belong to this submission or that the publication is already unpublished.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/changeLocale": {
            "put": {
                "tags": [
                    "Submissions \/ Publications"
                ],
                "summary": "Change the primary locale of a publication.",
                "description": "Change the primary locale used for multilingual metadata on this publication. Locale-specific values that have not yet been entered for the new locale will be carried over from the previous locale where possible.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "ChangeLocale",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "locale": {
                                    "type": "string",
                                    "description": "The locale code to set as the publication's primary locale."
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The submission after the locale change. The new locale will be reflected on the submission and propagated into the multilingual properties of its current publication.",
                        "schema": {
                            "$ref": "#\/definitions\/Submission"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The locale was missing or is not enabled for this context.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to change the locale for this publication. Returned, among other reasons, when the submission has more than one publication or the publication is already published \u2014 the language cannot be changed in either case.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/_components\/{component}": {
            "get": {
                "tags": [
                    "Backend"
                ],
                "summary": "Get a configured publication form component used by the editorial UI.",
                "description": "Returns the JSON configuration for one of the publication-edit forms rendered by the editorial UI. The available components are:\n\n- `metadata` \u2013 the publication metadata form\n- `reference` \u2013 the citations \/ references form\n- `titleAbstract` \u2013 the title and abstract form\n- `changeLanguageMetadata` \u2013 the change-primary-language helper used to migrate metadata across locales\n- `identifier` \u2013 the publication identifiers form (URL path, etc.)\n- `permissionDisclosure` \u2013 the licensing \/ permissions \/ copyright form\n- `issue` \u2013 OJS only: the issue-entry form (issue, section, cover image, pages, publication date)\n- `submissionPayment` \u2013 OJS only: the submission payment form\n\nThese endpoints are part of the private editorial UI and are not intended for third-party use. The exact response shape depends on the requested component and follows the [PKP Form Component](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/ui-library\/dev\/#\/component\/Form) configuration format.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "component",
                        "in": "path",
                        "description": "The form component name.",
                        "required": true,
                        "type": "string",
                        "enum": [
                            "metadata",
                            "reference",
                            "titleAbstract",
                            "changeLanguageMetadata",
                            "identifier",
                            "permissionDisclosure",
                            "issue",
                            "submissionPayment"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The form component configuration."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to load this form for this publication.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission, publication, or form component could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/contributors": {
            "get": {
                "tags": [
                    "Submissions \/ Publications \/ Contributors"
                ],
                "summary": "Get a publication's contributors.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of contributors for this publication.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/Contributor"
                            }
                        }
                    },
                    "404": {
                        "x-summary": "Publication Not Found",
                        "description": "The requested publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Publication Invalid",
                        "description": "The requested publication is not part of the requested submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions \/ Publications \/ Contributors"
                ],
                "summary": "Create a contributor.",
                "description": "Create a new contributor for a publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "Details about the contributor that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ContributorEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the contributor that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Contributor"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Publication Not Found",
                        "description": "The requested publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Publication Invalid",
                        "description": "The requested publication is not part of the requested submission. It could be also because the publication is not editable by the requested user",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/contributors\/{contributorId}": {
            "get": {
                "tags": [
                    "Submissions \/ Publications \/ Contributors"
                ],
                "summary": "Get a contributor.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "contributorId",
                        "in": "path",
                        "description": "Contributor ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The contributor details",
                        "schema": {
                            "$ref": "#\/definitions\/Contributor"
                        }
                    },
                    "403": {
                        "x-summary": "Publication Invalid",
                        "description": "The requested publication is not part of the requested submission. Or you do not have permission to edit this publication.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission, publication or author could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions \/ Publications \/ Contributors"
                ],
                "summary": "Edit a Contributor.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "contributorId",
                        "in": "path",
                        "description": "Contributor ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the contributor that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ContributorEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The contributor that was just edited with the new values after the update has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Contributor"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This error indicates one of the following:\n* This contributor is assigned to a publication that does not belong to this submission.\n* This contributor is assigned to a publication that has already been published. You must create a new version of the publication to modify contributor details.\n* You do not have permission to edit contributors for this publication.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission or publication or author could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Submissions \/ Publications \/ Contributors"
                ],
                "summary": "Delete a contributor.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "contributorId",
                        "in": "path",
                        "description": "Contributor ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The contributor that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/Contributor"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This may mean one of the following:\n* You are not allowed to edit the contributors for this publication.\n* This contributor is assigned to a publication that is not part of the requested submission.\n* This contributor is assigned to a published publication and can not be edited.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission or publication or author could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/contributors\/saveOrder": {
            "put": {
                "tags": [
                    "Submissions \/ Publications \/ Contributors"
                ],
                "summary": "Reorder publication's contributors",
                "description": "Change the order of the contributor's as they are listed in the publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "in": "path",
                        "description": "Publication ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "sortedAuthors": {
                                    "type": "array",
                                    "description": "An array of contributor objects in the order they should be listed.",
                                    "items": {
                                        "$ref": "#\/definitions\/Contributor"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An array of contributor objects in the new order.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/Contributor"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "This may mean one of the following:\n* You are not allowed to edit the contributors for this publication.\n* This contributor is assigned to a publication that is not part of the requested submission.\n* This contributor is assigned to a published publication and can not be edited.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/stage\/{stageId}\/tasks": {
            "get": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Retrieve all submission's task associated with the certain workflow stage",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "path",
                        "description": "Stage ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "isOpen",
                        "description": "Filter results by the open status.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "orderBy",
                        "description": "Order results by date created, date due or date started. One of the `EditorialTask::ORDERBY_*` constants.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Order results ascending or descending. One of the `EditorialTask::ORDER_DIR_*` constants.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of submission's tasks associated with the requested stage.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/EditorialTask"
                            }
                        }
                    },
                    "401": {
                        "x-summary": "Request Unauthorized",
                        "description": "A workflow stage is invalid",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the requested submission or stage.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/stage\/{stageId}\/tasks\/fromTemplate\/{templateId}": {
            "get": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Get a task created from a specific template",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageId",
                        "in": "path",
                        "description": "Stage ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "templateId",
                        "in": "path",
                        "description": "Template ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A task created from a template",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/EditorialTask"
                            }
                        }
                    },
                    "401": {
                        "x-summary": "Request Unauthorized",
                        "description": "A workflow stage is invalid",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the requested submission or stage.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested submission or task template could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/": {
            "post": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Add a new task or discussion.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "dateDue": {
                                    "type": "string",
                                    "format": "date-time",
                                    "description": "The due date of the task in the format Y-m-d. Only applicable to tasks.",
                                    "required": false
                                },
                                "description": {
                                    "type": "string",
                                    "description": "The description and a headnote of the task or discussion.",
                                    "required": false
                                },
                                "participants": {
                                    "type": "array",
                                    "description": "An array of user IDs that should be assigned to this task or discussion. The creator will be automatically added to the participants list.",
                                    "required": true,
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "userId": {
                                                "type": "integer",
                                                "description": "The user ID of the participant.",
                                                "required": true
                                            },
                                            "isResponsible": {
                                                "type": "boolean",
                                                "description": "Whether this participant is responsible for the task. Only one participant can be responsible. Discussions do not have a responsible participant.",
                                                "required": false
                                            }
                                        }
                                    }
                                },
                                "temporaryFileIds": {
                                    "type": "array",
                                    "description": "An array of temporary file IDs to attach to this task or discussion.",
                                    "required": false,
                                    "items": {
                                        "type": "integer"
                                    }
                                },
                                "title": {
                                    "type": "string",
                                    "description": "The title of the task or discussion.",
                                    "required": false
                                },
                                "type": {
                                    "type": "integer",
                                    "description": "An integer representing the type of the task. Use `1` for a discussion and `2` for a task.",
                                    "required": true
                                },
                                "stageId": {
                                    "type": "integer",
                                    "description": "The workflow stage ID that this task belongs to. Creator must have access to it.",
                                    "required": true
                                },
                                "submissionFileIds": {
                                    "type": "array",
                                    "description": "An array of existing submission file IDs to attach to this task or discussion.",
                                    "required": false,
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the comment that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/{taskId}": {
            "get": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Retrieve the task or discussion by ID.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Task ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The task.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Edit a task or discussion.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Task ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "dateDue": {
                                    "type": "string",
                                    "format": "date-time",
                                    "description": "The due date of the task in the format Y-m-d. Only applicable to tasks.",
                                    "required": false
                                },
                                "description": {
                                    "type": "string",
                                    "description": "The description and a headnote of the task or discussion.",
                                    "required": false
                                },
                                "participants": {
                                    "type": "array",
                                    "description": "An array of user IDs that should be assigned to this task or discussion. The creator will be automatically added to the participants list.",
                                    "required": true,
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "userId": {
                                                "type": "integer",
                                                "description": "The user ID of the participant.",
                                                "required": true
                                            },
                                            "isResponsible": {
                                                "type": "boolean",
                                                "description": "Whether this participant is responsible for the task. Only one participant can be responsible. Discussions do not have a responsible participant.",
                                                "required": false
                                            }
                                        }
                                    }
                                },
                                "title": {
                                    "type": "string",
                                    "description": "The title of the task. Discussions do not have titles.",
                                    "required": false
                                },
                                "type": {
                                    "type": "integer",
                                    "description": "An integer representing the type of the task. Use `1` for a discussion and `2` for a task.",
                                    "required": true
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the comment that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/{taskId}\/close": {
            "put": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Close a task or discussion.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Task ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The task that was just closed.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "409": {
                        "x-summary": "Request Conflict",
                        "description": "The task is already closed.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/{taskId}\/open": {
            "put": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Reopen a closed task or discussion.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Task ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The task that was just reopened.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "409": {
                        "x-summary": "Request Conflict",
                        "description": "The task is already open.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/{taskId}\/start": {
            "put": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Start a task.",
                "description": "Sets the `dateStarted` property of the task to the current date and time. Applicable only for tasks. This action cannot be undone.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Task ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The task that was just started.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "409": {
                        "x-summary": "Request Conflict",
                        "description": "The task has already been started.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "422": {
                        "x-summary": "Request Invalid",
                        "description": "The task cannot be started without participants or an assignee.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/{taskId}\/notes": {
            "post": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Add a note to a task or discussion, except a headnote.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Task ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "contents": {
                                    "type": "string",
                                    "description": "The contents of the note.",
                                    "required": true
                                },
                                "temporaryFileIds": {
                                    "type": "array",
                                    "description": "An array of temporary file IDs to attach to this note.",
                                    "required": false,
                                    "items": {
                                        "type": "integer"
                                    }
                                },
                                "submissionFileIds": {
                                    "type": "array",
                                    "description": "An array of existing submission file IDs to attach to this note.",
                                    "required": false,
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the note that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Note"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/tasks\/{taskId}\/notes\/{noteId}": {
            "delete": {
                "tags": [
                    "Submissions \/ Tasks"
                ],
                "summary": "Delete a note associated with task or discussion, except a headnote.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "description": "Associated submission ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "taskId",
                        "in": "path",
                        "description": "Associated task\/discussion ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "noteId",
                        "in": "path",
                        "description": "Note ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The task that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/EditorialTask"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to access the task or discussion because don't participate in it.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The task could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/editTaskTemplates": {
            "get": {
                "tags": [
                    "Editorial Task Templates"
                ],
                "summary": "List task\/discussion templates in the current context",
                "parameters": [
                    {
                        "name": "search",
                        "in": "query",
                        "type": "string",
                        "description": "Free-text search across title, name\/description (settings), and emailTemplateKey"
                    },
                    {
                        "name": "title",
                        "in": "query",
                        "type": "string",
                        "description": "Filter by title (case-insensitive, partial match)"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "type": "integer",
                        "enum": [
                            1,
                            2
                        ],
                        "description": "1 = discussion, 2 = task"
                    },
                    {
                        "name": "stageId",
                        "in": "query",
                        "type": "integer",
                        "description": "Workflow stage id (eg 1=submission, 3=review, 4=copyediting, 5=production)"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "type": "boolean",
                        "description": "Filter by include flag"
                    },
                    {
                        "name": "emailTemplateKey",
                        "in": "query",
                        "type": "string",
                        "description": "Filter by email template key"
                    },
                    {
                        "name": "count",
                        "in": "query",
                        "type": "integer",
                        "format": "int32",
                        "description": "Limit number of results"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "type": "integer",
                        "format": "int32",
                        "description": "Offset for pagination"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Templates",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/EditTaskTemplate"
                            }
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Editorial Task Templates"
                ],
                "summary": "Create a task\/discussion template",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#\/definitions\/AddTaskTemplateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Created template",
                        "schema": {
                            "$ref": "#\/definitions\/EditTaskTemplate"
                        }
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "\/editTaskTemplates\/{templateId}": {
            "put": {
                "tags": [
                    "Editorial Task Templates"
                ],
                "summary": "Update a task\/discussion template",
                "parameters": [
                    {
                        "name": "templateId",
                        "in": "path",
                        "required": true,
                        "type": "integer",
                        "format": "int64",
                        "description": "Template ID"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#\/definitions\/UpdateTaskTemplateRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Updated template",
                        "schema": {
                            "$ref": "#\/definitions\/EditTaskTemplate"
                        }
                    },
                    "404": {
                        "description": "Template not found in current context"
                    },
                    "422": {
                        "description": "Validation error"
                    }
                }
            }
        },
        "\/editTaskTemplates\/variables": {
            "get": {
                "tags": [
                    "Editorial Task Templates"
                ],
                "summary": "List available variables for task\/discussion templates",
                "responses": {
                    "200": {
                        "description": "Available variables",
                        "schema": {
                            "type": "object",
                            "description": "The variables that can be used in task templates. The key indicates the variable name and the value of its localized description",
                            "example": {
                                "taskDueDate": "The specific date by which the task should be finished",
                                "taskOwnerName": "The full name of the user responsible for the task"
                            }
                        }
                    }
                }
            }
        },
        "\/issues": {
            "get": {
                "tags": [
                    "Issues"
                ],
                "summary": "Get a list of issues.",
                "description": "Results are ordered by `datePublished`.",
                "parameters": [
                    {
                        "name": "count",
                        "description": "How many results to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 20
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests. A `count` of `10` and `offset` of `15` will return results `15` to `25`.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderBy",
                        "description": "Order the results returned.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "datePublished",
                        "enum": [
                            "datePublished",
                            "lastModified",
                            "seq"
                        ]
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    },
                    {
                        "name": "isPublished",
                        "description": "Filter returned issues by those that have been published. Pass a `false` value to return only unpublished issues. Only administrators and journal managers are allowed to access unpublished issues.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "volumes",
                        "description": "Filter returned issues by those in a specific volume.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "numbers",
                        "description": "Filter returned issues by those assigned a specific number.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "years",
                        "description": "Filter returned issues by those in a specific year.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter the results by a search phrase matched against the title, description and year. It will also attempt to match search phrases using the localised issue identification. For example, in English a search for `Vol. 1 No. 2 (2018)` will match an issue with a volume of `1`, a number of `2` and a year of `2018`. The precise format differs for each language.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of issues.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/IssueSummary"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The requested volume, number or year is not valid.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/issues\/current": {
            "get": {
                "tags": [
                    "Issues"
                ],
                "summary": "Get the current issue.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The current issue.",
                        "schema": {
                            "$ref": "#\/definitions\/Issue"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "This journal does not have a current issue.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/issues\/{issueId}": {
            "get": {
                "tags": [
                    "Issues"
                ],
                "summary": "Get an issue by ID.",
                "description": "If the issue has a custom section order, the `seq` property of each `SectionSummary` will reflect the sequence for that issue.",
                "parameters": [
                    {
                        "name": "issueId",
                        "in": "path",
                        "description": "Issue ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The requested issue.",
                        "schema": {
                            "$ref": "#\/definitions\/Issue"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested issue could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/users": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Get a list of users.",
                "parameters": [
                    {
                        "name": "roleIds",
                        "description": "Filter the results by those who have one of these user role IDs.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "status",
                        "description": "Filter results by active\/disabled users.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "active",
                        "enum": [
                            "active",
                            "disabled",
                            "all"
                        ]
                    },
                    {
                        "name": "assignedToSubmission",
                        "description": "Filter results by those assigned to this submission ID.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "assignedToSubmissionStage",
                        "description": "Filter results by those assigned to this submission stage. Will be ignored if no `assignedToSubmission` parameter exists.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "assignedToSection",
                        "description": "Filter the results by those assigned as section editors to this section ID.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "count",
                        "description": "How many results to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 20
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests. A `count` of `10` and `offset` of `15` will return results `15` to `25`.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderBy",
                        "description": "Order the results returned. ",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "id",
                        "enum": [
                            "id",
                            "familyName",
                            "givenName"
                        ]
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter the results by a search phrase matched against the `userName`, `givenName`, `familyName`, `email`, `affiliation`, `biography` and `orcid`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of users.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/UserSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "Only administrators, journal managers and editors are allowed to access users on this site.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/users\/{userId}": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Get a user by ID.",
                "parameters": [
                    {
                        "name": "userId",
                        "description": "User ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "User details.",
                        "schema": {
                            "$ref": "#\/definitions\/User"
                        }
                    }
                }
            }
        },
        "\/users\/{userId}\/endRole\/{userGroupId}": {
            "put": {
                "tags": [
                    "Users"
                ],
                "summary": "End role access for a given user.",
                "parameters": [
                    {
                        "name": "userId",
                        "description": "User ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "userGroupId",
                        "description": "User Group ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "User details.",
                        "schema": {
                            "$ref": "#\/definitions\/User"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested user or user group could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/users\/reviewers": {
            "get": {
                "tags": [
                    "Users"
                ],
                "summary": "Get a list of reviewers.",
                "parameters": [
                    {
                        "name": "status",
                        "description": "Filter results by active\/disabled users.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "active",
                        "enum": [
                            "active",
                            "disabled",
                            "all"
                        ]
                    },
                    {
                        "name": "reviewerRating",
                        "description": "Filter results by those who have an average review assignment rating of at least `X` (valid ratings are between `1` and `5`).",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "reviewStage",
                        "description": "Filter results by reviewers for one of the review stages in the workflow. Must be one of `WORKFLOW_STAGE_ID_INTERNAL_REVIEW` or `WORKFLOW_STAGE_ID_EXTERNAL_REVIEW`. In OJS, the review stage is `WORKFLOW_STAGE_ID_EXTERNAL_REVIEW`.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "reviewsCompleted",
                        "description": "Filter results by those who have completed at least `X` reviews. You can also pass a range as a string formatted as `X-X`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "reviewsActive",
                        "description": "Filter results by those who have `X` review assignments currently in progress. You can also pass a range as a string formatted as `X-X`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "daysSinceLastAssignment",
                        "description": "Filter results by those who's last review was assigned at least `X` days ago. You can also pass a range as a string formatted as `X-X`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "averageCompletion",
                        "description": "Filter results by those who complete a review assignment within `X` days on average.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "count",
                        "description": "How many results to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 20
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests. A `count` of `10` and `offset` of `15` will return results `15` to `25`.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderBy",
                        "description": "Order the results returned.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "id",
                        "enum": [
                            "id",
                            "familyName",
                            "givenName"
                        ]
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter the results by a search phrase matched against the `userName`, `givenName`, `familyName`, `email`, `affiliation`, `biography`, `orcid`, `interests`, and `gossip`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of reviewers.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/ReviewerSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "Only administrators, journal managers and editors are allowed to access users on this site.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/contexts": {
            "get": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Get a list of contexts.",
                "description": "Get an array of the journals (OJS), presses (OMP) or preprint servers (OPS) hosted on this site.",
                "parameters": [
                    {
                        "name": "isEnabled",
                        "description": "Filter results by enabled\/disabled contexts. Any truthy or falsey value will get enabled\/disabled contexts. Leave this parameter out to get all contexts.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many results to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 20
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against the `name`, `description`, `acronym`, or `abbreviation`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of contexts.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/ContextSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view disabled contexts.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Create a new context.",
                "description": "Create a new journal (OJS), press (OMP) or preprint server (OPS).",
                "parameters": [
                    {
                        "description": "Details about the context that should be created. The `path` field is required. The `name` is required in the site's primary locale.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ContextEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the context that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Context"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/contexts\/{contextId}": {
            "get": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Get a context.",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "Context ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Context details. Some details may be withheld if you are not a site admin or manager of that context.",
                        "schema": {
                            "$ref": "#\/definitions\/Context"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Edit a context.",
                "description": "Edit a journal (OJS), press (OMP) or preprint server (OPS).",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "Context ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about a context that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ContextEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The context that was just edited with the current values after the edit has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Context"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "There are two possible conditions that will result in a `403` response. 1. You do not have permission to edit this context. 2. You submitted changes for one context from the API endpoint of another context. To edit a context, you must make a request to that context's API endpoint or the site-wide API endpoint.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Delete a context.",
                "description": "Delete a journal (OJS), press (OMP) or preprint server (OPS).",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "Context ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the context that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/Context"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/contexts\/{contextId}\/theme": {
            "get": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Get the active theme.",
                "description": "Get the active theme and theme options for any journal (OJS), press (OMP) or preprint server (OPS).",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "Context ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The response will include the theme plugin directory in `themePluginPath`. Any theme options will be provided in additional keys based on the option name.",
                        "schema": {
                            "$ref": "#\/definitions\/ThemeOptions"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested context could not be found. A 404 may also be returned when a context has no active theme, or the active theme plugin has not been installed or enabled.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Contexts"
                ],
                "summary": "Edit the active theme.",
                "description": "Edit the active theme and theme options for any journal (OJS), press (OMP) or preprint server (OPS).",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "Context ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details you want to edit. The `themePluginPath` is required to specify the active theme, even if the theme is not being changed. Any additional keys\/values must match the options defined by that theme.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ThemeOptions"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The new theme and values for any of its theme options.",
                        "schema": {
                            "$ref": "#\/definitions\/ThemeOptions"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "There are two possible conditions that will result in a `403` response. 1. You do not have permission to edit this context. 2. You submitted changes for one context from the API endpoint of another context. To edit a context, you must make a request to that context's API endpoint or the site-wide API endpoint.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/userGroups": {
            "get": {
                "tags": [
                    "User Groups"
                ],
                "summary": "Get a list of user groups for a context.",
                "description": "Get a list of user groups for any journal (OJS), press (OMP) or preprint server (OPS).",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "Context ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "stageIds",
                        "description": "Filter user groups by stage IDs they have access to.",
                        "in": "query",
                        "required": false,
                        "type": "array"
                    },
                    {
                        "name": "roleIds",
                        "description": "Filter user groups by associated role IDs.",
                        "in": "query",
                        "required": false,
                        "type": "array"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of user groups.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/UserGroup"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/site": {
            "get": {
                "tags": [
                    "Site"
                ],
                "summary": "Get the site.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Site settings.",
                        "schema": {
                            "$ref": "#\/definitions\/Site"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Site"
                ],
                "summary": "Edit the site.",
                "parameters": [
                    {
                        "description": "The details about the site that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/SiteEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The site details with the current values after the edit has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Site"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/site\/theme": {
            "get": {
                "tags": [
                    "Site"
                ],
                "summary": "Get the theme.",
                "description": "Get the active theme and theme options for the site.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The response will include the theme plugin directory in `themePluginPath`. Any theme options will be provided in additional keys based on the option name.",
                        "schema": {
                            "$ref": "#\/definitions\/ThemeOptions"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "Details about the active theme could not be found. This can occur when the active theme plugin is not installed or enabled.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Site"
                ],
                "summary": "Edit the theme.",
                "description": "Get the active theme and theme options for the site.",
                "parameters": [
                    {
                        "description": "The details you want to edit. The `themePluginPath` is required to specify the active theme, even if the theme is not being changed. Any additional keys\/values must match the options defined by that theme.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ThemeOptions"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The new theme and values for any of its theme options.",
                        "schema": {
                            "$ref": "#\/definitions\/ThemeOptions"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/announcements": {
            "get": {
                "tags": [
                    "Announcements"
                ],
                "summary": "Get a collection of announcements.",
                "parameters": [
                    {
                        "name": "count",
                        "description": "How many results to return in a single request.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 20
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against the `title`, `descriptionShort`, and `description`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "typeIds",
                        "description": "Filter results by announcements of these announcement types.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of announcements.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/AnnouncementSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view announcements in this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Announcements"
                ],
                "summary": "Create a new announcement.",
                "description": "Create and publish a new announcement in this context.",
                "parameters": [
                    {
                        "description": "Details about the announcement that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/AnnouncementEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the announcement that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Announcement"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/announcements\/{announcementId}": {
            "get": {
                "tags": [
                    "Announcements"
                ],
                "summary": "Get an announcement.",
                "parameters": [
                    {
                        "name": "announcementId",
                        "description": "Announcement ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Announcement details.",
                        "schema": {
                            "$ref": "#\/definitions\/Announcement"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this announcement.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested announcement could not be found. Or you requested an announcement that is not part of this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Announcements"
                ],
                "summary": "Edit an announcement.",
                "description": "Edit an announcement.",
                "parameters": [
                    {
                        "name": "announcementId",
                        "description": "Announcement ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the announcement that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/AnnouncementEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The announcement that was just edited with the current values after the edit has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Announcement"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to edit this announcement.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested announcement could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Announcements"
                ],
                "summary": "Delete an announcement.",
                "description": "Delete an announcement.",
                "parameters": [
                    {
                        "name": "announcementId",
                        "description": "Announcement ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the announcement that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/Announcement"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete this announcement.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested announcement could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois": {
            "get": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Get a list of DOIs.",
                "parameters": [
                    {
                        "name": "status",
                        "description": "Filter results by one or more DOI statuses. Must match the value of one of the `Doi::STATUS_UNREGISTERED`, `Doi::STATUS_SUBMITTED`, `Doi::STATUS_REGISTERED`, `Doi::STATUS_ERROR`, `Doi::STATUS_STALE` constants.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer",
                            "enum": [
                                1,
                                2,
                                3,
                                4,
                                5
                            ]
                        }
                    },
                    {
                        "name": "count",
                        "description": "How many results to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests. A `count` of `10` and `offset` of `15` will return results `15` to `25`.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of requested DOIs",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/Doi"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access DOIs for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Create a new DOI.",
                "parameters": [
                    {
                        "description": "Details about the DOI that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/DoiEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the DOI that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Doi"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/{doiId}": {
            "get": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Get a DOI by ID.",
                "parameters": [
                    {
                        "name": "doiId",
                        "in": "path",
                        "description": "DOI ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The DOI details.",
                        "schema": {
                            "$ref": "#\/definitions\/Doi"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access this DOI, or the DOI you requested is not part of this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested DOI could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Edit a DOI.",
                "description": "Modify the contents of a single DOI. When working with versioned content, if you'd like to modify the content of a DOI for a single version of a publication object, you need to include the `pubObjectType` and `pubObjectId` in the request body.",
                "parameters": [
                    {
                        "name": "doiId",
                        "in": "path",
                        "description": "DOI ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the DOI you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified. Two exceptions are `pubObjectType` and `pubObjectId`. They are optional but if one is used, the other must also be used.",
                        "in": "body",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#\/definitions\/DoiEditable"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "pubObjectType": {
                                            "type": "string",
                                            "enum": [
                                                "publication",
                                                "representation",
                                                "issue"
                                            ],
                                            "description": "Publication object type to modify the DOI for."
                                        },
                                        "pubObjectId": {
                                            "type": "integer",
                                            "description": "ID of publication object you want ot modify the DOI for."
                                        }
                                    }
                                }
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The DOI that was just edited with the new values after the update has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Doi"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "There was an error editing the DOI.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.403.editItemOutOfContext`|You cannot edit an item's DOI that is not in this context.|\n|`api.dois.403.pubTypeNotRecognized`|The publication type was not recognized.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested DOI could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Delete a DOI.",
                "description": "Delete a single DOI. When working with versioned content, if you'd like to delete a DOI for a single version of a publication object, you will need to include the `pubObjectType` and the corresponding `pubObjectId` in the request body.",
                "parameters": [
                    {
                        "name": "doiId",
                        "in": "path",
                        "description": "DOI ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "Body params are optional but must be used together.",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "pubObjectType": {
                                    "type": "string",
                                    "enum": [
                                        "publication",
                                        "representation",
                                        "issue"
                                    ],
                                    "description": "Publication object type to modify the DOI for."
                                },
                                "pubObjectId": {
                                    "type": "integer",
                                    "description": "ID of publication object you want to modify the DOI for."
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the deleted DOI.",
                        "schema": {
                            "$ref": "#\/definitions\/Doi"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "There was an error deleting the DOI.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.403.editItemOutOfContext`|You cannot edit an item's DOI that is not in this context.|\n|`api.dois.403.pubTypeNotRecognized`|The publication type was not recognized.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested DOI could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/depositAll": {
            "put": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Schedule all DOIs for deposit.",
                "description": "Schedules all publication objects with DOIs enabled that are published and include DOIs for deposit with the configured registration agency. DOIs will be queued and handled by the Jobs system in the order in which they were added.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to deposit DOIs in this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/exports\/{fileId}": {
            "get": {
                "tags": [
                    "DOIs"
                ],
                "summary": "Download a DOI export.",
                "description": "Download a DOI export file that has been compiled. See `\/dois\/submissions\/export` and `\/dois\/issues\/export`.",
                "parameters": [],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "403": {
                        "x-summary": "Request unauthorized",
                        "description": "You are not authorized to access the requested file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/submissions\/assignDois": {
            "post": {
                "tags": [
                    "DOIs \/ Submissions"
                ],
                "summary": "Assign DOIs to Submissions.",
                "description": "Assign DOIs to all publication objects of a submission, such as the publication and galleys. This will only assign DOIs to publication objects that have been enabled in the DOI settings.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Submission IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "description": "A list of error messages. This will be empty if the response code is `200`.",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "One or more DOIs could not be assigned.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "description": "A list of error messages for any DOIs that could not be assigned.",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Could not create a DOI for the following submission: Lorem Ipsum Dolor Sit Amet. The submission must be assigned to an issue before a DOI can be generated."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal. Or no DOI prefix has been configured.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submissions could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/submissions\/export": {
            "put": {
                "tags": [
                    "DOIs \/ Submissions"
                ],
                "summary": "Export Submission DOIs.",
                "description": "Export submission metadata in a format that can be deposited with the currently configured DOI registration agency. This returns a file ID which can be downloaded through the API endpoint `\/dois\/exports\/{fileId}`. See \"Download a DOI Export\" above.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Submission IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An object with the temporary file ID to download the exported data. See \"Download a DOI Export\" above.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer"
                                }
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The export could not be completed because of invalid request parameters or other required settings.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.400.invalidPubObjectIncluded`|One or more invalid publication objects were included with the request.|\n|`api.dois.400.noRegistrationAgencyConfigured`|No DOI registration agency has been configured for this journal.|\n|`api.dois.400.xmlExportFailed`|An XML validation error occurred and the XML could not be exported. The `error` message lists the validation errors.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The export could not be completed because a submission or DOI could not be found with the corresponding ID.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.404.noPubObjectIncluded`|No valid publication objects were included with the request.|\n|`api.dois.404.doiNotFound`|The DOI you requested was not found.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/submissions\/deposit": {
            "put": {
                "tags": [
                    "DOIs \/ Submissions"
                ],
                "summary": "Deposit Submission DOIs.",
                "description": "This will deposit the specified submission DOIs with the currently configured DOI registration agency.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Submission IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "There was an error when submitting the DOIs to the registration agency.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.400.invalidPubObjectIncluded`|One or more invalid publication objects were included with the request.|\n|`api.dois.400.noRegistrationAgencyConfigured`|No DOI registration agency has been configured for this journal.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The deposit could not be completed because a submission or DOI could not be found with the corresponding ID.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.404.noPubObjectIncluded`|No valid publication objects were included with the request.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/submissions\/markRegistered": {
            "put": {
                "tags": [
                    "DOIs \/ Submissions"
                ],
                "summary": "Mark Submission DOIs registered.",
                "description": "This will mark the specified submission DOIs as registered. This can be done to indicate the items were deposited outside of OJS.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Submission IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "One or more DOIs could not be marked registered.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "description": "A list of error messages for any DOIs that could not be assigned.",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Failed to mark the DOI registered for Lorem Ipsum Dolor Sit Amet. The submission must be published before the status can be updated."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No valid publication objects were included with the request.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/submissions\/markUnregistered": {
            "put": {
                "tags": [
                    "DOIs \/ Submissions"
                ],
                "summary": "Mark Submission DOIs unregistered.",
                "description": "This will mark the specified submission DOIs as unregistered. This can be done to remove a DOI's previous registration status.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Submission IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "One or more DOIs could not be marked unregistered.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "description": "A list of error messages for any DOIs that could not be marked unregistered.",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Could not create a DOI for the following submission: {$pubObjectTitle}. It does not exist in the current journal context."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No valid publication objects were included with the request.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/submissions\/markStale": {
            "put": {
                "tags": [
                    "DOIs \/ Submissions"
                ],
                "summary": "Mark Submission DOIs needs sync.",
                "description": "This will mark the specified submission DOIs as needing to be resubmitted to the registration agency to update their metadata records.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Submission IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "One or more DOIs could not be marked registered.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "description": "A list of error messages for any DOIs that could not be marked stale.",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Failed to mark the DOI needs sync for Lorem Ipsum Dolor Sit Amet. The DOI cannot be marked needs sync because they have not yet been registered or submitted."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No valid publication objects were included with the request.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/issues\/assignDois": {
            "post": {
                "tags": [
                    "DOIs \/ Issues"
                ],
                "summary": "Assign DOIs to Issues.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Issue IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of error messages. This will be empty when the status is `200`.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": []
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "List of error messages for any issues for which the action failed.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Could not create a DOI for the following issue: Issue Title. It does not exist in the current journal context."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal. Or a DOI prefix is required to generate DOIs.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The issue could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/issues\/export": {
            "put": {
                "tags": [
                    "DOIs \/ Issues"
                ],
                "summary": "Export Issue DOIs.",
                "description": "Export issue metadata in a format that can be deposited with the currently configured DOI registration agency. This returns a file ID which can be downloaded through the API endpoint `\/dois\/exports\/{fileId}`. See \"Download a DOI Export\" above.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Issue IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An object with the temporary file ID needed to download the exported data. See \"Download a DOI Export\" above.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer"
                                }
                            },
                            "example": {
                                "temporaryFileId": 1
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The export could not be completed because of invalid request parameters or other required settings.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.400.invalidPubObjectIncluded`|One or more invalid publication objects were included with the request.|\n|`api.dois.400.noRegistrationAgencyConfigured`|No DOI registration agency has been configured for this journal.|\n|`api.dois.400.xmlExportFailed`|An XML validation error occurred and the XML could not be exported. The `error` message lists the validation errors.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The export could not be completed because an issue or DOI could not be found with the corresponding ID.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.404.noPubObjectIncluded`|No valid publication objects were included with the request.|\n|`api.dois.404.doiNotFound`|The DOI you requested was not found.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/issues\/deposit": {
            "put": {
                "tags": [
                    "DOIs \/ Issues"
                ],
                "summary": "Deposit Issue DOIs.",
                "description": "This will deposit the specified issue DOIs with the currently configured DOI registration agency.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Issue IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "There was an error when submitting the DOIs to the registration agency.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.400.invalidPubObjectIncluded`|One or more invalid publication objects were included with the request.|\n|`api.dois.400.noRegistrationAgencyConfigured`|No DOI registration agency has been configured for this journal.|\n|`api.dois.400.depositFailed`|Some items were not deposited successfully. Please check the individual items for their specific error messages.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The deposit could not be completed because a submission or DOI could not be found with the corresponding ID.\n\n|Error Code|Description|\n|---|---|\n|`api.dois.404.noPubObjectIncluded`|No valid publication objects were included with the request.|",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/issues\/markRegistered": {
            "put": {
                "tags": [
                    "DOIs \/ Issues"
                ],
                "summary": "Mark Issue DOIs registered.",
                "description": "This will mark the specified issue DOIs as registered. This can be done to indicate the items were deposited outside of OJS.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Issue IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "List of error messages for any issues for which the action failed.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Failed to mark the DOI registered for Vol. 1, No. 2: Lorem Ipsum. The issue must be published before the status can be updated."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No valid publication objects were included with the request.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/issues\/markUnregistered": {
            "put": {
                "tags": [
                    "DOIs \/ Issues"
                ],
                "summary": "Mark Issue DOIs unregistered.",
                "description": "This will mark the specified issue DOIs as unregistered. This can be done to remove a DOI's previous registration status.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Issue IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "List of error messages for any issues for which the action failed.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Could not create a DOI for the following issue: Vol. 1, No. 2: Lorem Ipsum. It does not exist in the current journal context."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No valid publication objects were included with the request.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/dois\/issues\/markStale": {
            "put": {
                "tags": [
                    "DOIs \/ Issues"
                ],
                "summary": "Mark Issue DOIs needs sync.",
                "description": "This will mark the specified issue DOIs as needing to be resubmitted to the registration agency to update their metadata records.",
                "parameters": [
                    {
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "ids": {
                                    "type": "array",
                                    "description": "Issue IDs",
                                    "items": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "List of error messages for any issues for which the action failed.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "failedDoiActions": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "failedDoiActions": [
                                    "Failed to mark the DOI needs sync for Vol. 1, No. 2: Lorem Ipsum. The DOI cannot be marked needs sync because they have not yet been registered or submitted."
                                ]
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to manage DOIs in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No valid publication objects were included with the request.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/emailTemplates": {
            "get": {
                "tags": [
                    "Email Templates"
                ],
                "summary": "Get email templates.",
                "parameters": [
                    {
                        "name": "alternateTo",
                        "description": "Filter results by those assigned to a `Mailable` with this default email template key.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isModified",
                        "description": "Filter results by those that have been modified from the default template. This is different from `isCustom` because it will return custom templates alongside any default templates that have been modified.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against the `key`, `subject`, `body`, or `description`.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many templates to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the templates returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of email templates.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/EmailTemplateSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view email templates.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Email Templates"
                ],
                "summary": "Create an email template.",
                "parameters": [
                    {
                        "description": "Details about the email template that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/EmailTemplateEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the email template that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/EmailTemplate"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to add an email template.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/emailTemplates\/{key}": {
            "get": {
                "tags": [
                    "Email Templates"
                ],
                "summary": "Get an email template by key.",
                "description": "Email templates are fetched by their key, rather than ID, so that a default template is retrieved if it has not been customized. See the [documentation](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/docs.pkp.sfu.ca\/dev\/documentation\/en\/email-templates).",
                "parameters": [
                    {
                        "name": "key",
                        "description": "Email template key",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Email template details.",
                        "schema": {
                            "$ref": "#\/definitions\/EmailTemplate"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view email templates.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested email template could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Email Templates"
                ],
                "summary": "Edit an email template.",
                "parameters": [
                    {
                        "name": "key",
                        "description": "Email template key",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "The details about the email template that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/EmailTemplateEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The email template that was just edited with the current values after the edit has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/EmailTemplate"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "There are two possible conditions that will result in a `403` response. 1. You do not have permission to edit this email template. 2. You are an admin and you submitted changes for an email template in one context from the API endpoint of another context. To edit an email template, you must make a request to the API endpoint of that email template's context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested email template could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Email Templates"
                ],
                "summary": "Delete an email template.",
                "description": "Default templates that have not been modified can not be deleted.",
                "parameters": [
                    {
                        "name": "key",
                        "description": "Email template key",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the email template that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/EmailTemplate"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete this email template.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested email template could not be found. This will be returned if you try to delete a default email template that has not been modified.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/emailTemplates\/restoreDefaults": {
            "delete": {
                "tags": [
                    "Email Templates"
                ],
                "summary": "Restore default email templates.",
                "description": "Delete custom templates and reset all templates to their default settings.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of template keys which were deleted or reset.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to reset all email templates.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/emails\/authorEmails": {
            "get": {
                "tags": [
                    "Emails"
                ],
                "summary": "Gets an Author's email entry logs.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Filter results to emails associated with a specific submissionId.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "eventType",
                        "description": "Filter results by an event type",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of emails.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/EmailSummary"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view emails.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "No matching resource for a provided query param. Example: no submission found matching the provided `submissionId` query param.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request query params are invalid. The error message will contain details about the invalid query param.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/emails\/{emailId}": {
            "get": {
                "tags": [
                    "Emails"
                ],
                "summary": "Get an email entry log by ID",
                "parameters": [
                    {
                        "name": "emailId",
                        "description": "Email ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The email entry log details.",
                        "schema": {
                            "$ref": "#\/definitions\/EmailSummary"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access this email.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The email could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/institutions": {
            "get": {
                "tags": [
                    "Institutions"
                ],
                "summary": "Get a collection of institutions that have been added to this journal, press or preprint server.",
                "parameters": [
                    {
                        "name": "count",
                        "description": "How many results to return in a single request.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against the name or IP address.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of institutions.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/InstitutionSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view institutions in this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Institutions"
                ],
                "summary": "Create a new institution.",
                "description": "Add an institution to this context.",
                "parameters": [
                    {
                        "name": "Institution",
                        "description": "Details about the institution that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/InstitutionEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the institution that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Institution"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this institution.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/institutions\/{institutionId}": {
            "get": {
                "tags": [
                    "Institutions"
                ],
                "summary": "Get an institution.",
                "parameters": [
                    {
                        "name": "institutionId",
                        "description": "Institution ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Institution details.",
                        "schema": {
                            "$ref": "#\/definitions\/Institution"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this institution.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested institution could not be found, or you requested an institution that is not part of this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Institutions"
                ],
                "summary": "Edit an institution.",
                "description": "Edit an institution.",
                "parameters": [
                    {
                        "name": "institutionId",
                        "description": "Institution ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "Institution",
                        "description": "The details about the institution that you want to edit. All params are optional. When a param is omitted, the existing value of that param will not be modified.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/InstitutionEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The institution that was just edited with the current values after the edit has occurred.",
                        "schema": {
                            "$ref": "#\/definitions\/Institution"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to edit this institution.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested institution could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Institutions"
                ],
                "summary": "Delete an institution.",
                "description": "Delete an institution.",
                "parameters": [
                    {
                        "name": "institutionId",
                        "description": "Institution ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the institution that was just deleted.",
                        "schema": {
                            "$ref": "#\/definitions\/Institution"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete this institution.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested institution could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/mailables": {
            "get": {
                "tags": [
                    "Mailables"
                ],
                "summary": "Get all mailables",
                "description": "Get a list of all Mailable classes configured in the journal. Each mailable class represents an email event, such as a notification to a reviewer.",
                "parameters": [
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against the `name` and `description` of a Mailable.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of fully qualified class names of mailables.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/MailableSummary"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view mailables.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/mailables\/{id}": {
            "get": {
                "tags": [
                    "Mailables"
                ],
                "summary": "Get a mailable",
                "description": "Get a Mailable by its id.",
                "parameters": [
                    {
                        "name": "id",
                        "description": "The ID of the mailable derived from the fully-qualified class name, such as `PKP-mail-mailables-ReviewRequest`.",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The mailable's fully qualified class name",
                        "schema": {
                            "$ref": "#\/definitions\/Mailable"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view mailables.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested mailable could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/navigationMenus": {
            "post": {
                "tags": [
                    "Navigation Menus"
                ],
                "summary": "Create a new navigation menu.",
                "description": "Create a new navigation menu for the current context.",
                "parameters": [
                    {
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#\/definitions\/NavigationMenu"
                        }
                    }
                ],
                "responses": {
                    "201": {
                        "x-summary": "Created",
                        "description": "Details of the created navigation menu.",
                        "schema": {
                            "$ref": "#\/definitions\/NavigationMenu"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to create navigation menus.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "422": {
                        "x-summary": "Unprocessable Entity",
                        "description": "Validation errors occurred. The title may already exist or the area may already be assigned to another menu.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/navigationMenus\/areas": {
            "get": {
                "tags": [
                    "Navigation Menus"
                ],
                "summary": "Get available navigation areas.",
                "description": "Returns a list of available navigation areas (theme locations) where menus can be assigned.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of available navigation areas.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "areas": {
                                    "type": "object",
                                    "description": "Key-value pairs of area names.",
                                    "additionalProperties": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access navigation areas.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/navigationMenus\/items": {
            "get": {
                "tags": [
                    "Navigation Menus"
                ],
                "summary": "Get all navigation menu items for new menu creation.",
                "description": "Returns all navigation menu items for the current context. Used when creating a new menu to get all available items as unassigned.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Object containing assigned (empty) and unassigned items.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "assigned": {
                                    "type": "array",
                                    "description": "Empty array for new menu creation.",
                                    "items": {
                                        "type": "object"
                                    }
                                },
                                "unassigned": {
                                    "type": "array",
                                    "description": "All available menu items.",
                                    "items": {
                                        "type": "object"
                                    }
                                },
                                "itemTypes": {
                                    "type": "object",
                                    "description": "Available menu item types."
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access navigation menu items.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/navigationMenus\/{navigationMenuId}": {
            "put": {
                "tags": [
                    "Navigation Menus"
                ],
                "summary": "Update a navigation menu.",
                "description": "Update the properties of an existing navigation menu.",
                "parameters": [
                    {
                        "name": "navigationMenuId",
                        "description": "Navigation Menu ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#\/definitions\/NavigationMenu"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the updated navigation menu.",
                        "schema": {
                            "$ref": "#\/definitions\/NavigationMenu"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to edit this navigation menu.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested navigation menu could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "422": {
                        "x-summary": "Unprocessable Entity",
                        "description": "Validation errors occurred. The title may already exist or the area may already be assigned to another menu.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/navigationMenus\/{navigationMenuId}\/items": {
            "get": {
                "tags": [
                    "Navigation Menus"
                ],
                "summary": "Get items for a navigation menu.",
                "description": "Returns assigned items (as a tree) and unassigned items for a specific navigation menu.",
                "parameters": [
                    {
                        "name": "navigationMenuId",
                        "description": "Navigation Menu ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Object containing assigned and unassigned items for the menu.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "assigned": {
                                    "type": "array",
                                    "description": "Hierarchical tree of assigned menu items.",
                                    "items": {
                                        "type": "object"
                                    }
                                },
                                "unassigned": {
                                    "type": "array",
                                    "description": "Flat list of unassigned menu items.",
                                    "items": {
                                        "type": "object"
                                    }
                                },
                                "itemTypes": {
                                    "type": "object",
                                    "description": "Available menu item types."
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access this navigation menu.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested navigation menu could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/editorial": {
            "get": {
                "tags": [
                    "Stats \/ Editorial"
                ],
                "summary": "Get editorial activity stats.",
                "description": "Returns information about editorial activity such as the number of submissions accepted and declined, the number of days to reach editorial decisions, and the acceptance and rejection rates.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by submissions to these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An array containing the requested stats. The `name` may change with translation but the `key` will be a reliable, unique identifier for the statistic.",
                        "schema": {
                            "type": "array",
                            "example": [
                                {
                                    "key": "submissionsReceived",
                                    "name": "Submissions Received",
                                    "value": 64
                                },
                                {
                                    "key": "submissionsAccepted",
                                    "name": "Submissions Accepted",
                                    "value": 54
                                },
                                {
                                    "key": "submissionsDeclined",
                                    "name": "Submissions Declined",
                                    "value": 4
                                },
                                {
                                    "key": "submissionsDeclinedDeskReject",
                                    "name": "Submissions Declined (Desk Reject)",
                                    "value": 0
                                },
                                {
                                    "key": "submissionsDeclinedPostReview",
                                    "name": "Submissions Declined (After Review)",
                                    "value": 4
                                },
                                {
                                    "key": "submissionsPublished",
                                    "name": "Submissions Published",
                                    "value": 53
                                },
                                {
                                    "key": "daysToDecision",
                                    "name": "Days to First Editorial Decision",
                                    "value": 42
                                },
                                {
                                    "key": "daysToAccept",
                                    "name": "Days to Accept",
                                    "value": 123
                                },
                                {
                                    "key": "daysToReject",
                                    "name": "Days to Reject",
                                    "value": 322
                                },
                                {
                                    "key": "acceptanceRate",
                                    "name": "Acceptance Rate",
                                    "value": 0.84
                                },
                                {
                                    "key": "declineRate",
                                    "name": "Rejection Rate",
                                    "value": 0.06
                                },
                                {
                                    "key": "declinedDeskRate",
                                    "name": "Desk Reject Rate",
                                    "value": 0
                                },
                                {
                                    "key": "declinedReviewRate",
                                    "name": "After Review Reject Rate",
                                    "value": 0.06
                                }
                            ]
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access editorial statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/editorial\/averages": {
            "get": {
                "tags": [
                    "Stats \/ Editorial"
                ],
                "summary": "Get yearly averages of editorial stats.",
                "description": "Returns yearly averages of editorial activity. To ensure averages are calculated fairly, partial years are not included in the averages. For example, if the first submission was received in October 2017 and the last submission was received in the current calendar year, only submissions from 2018 up until the end of the previous calendar year will be used to calculate the average.",
                "parameters": [
                    {
                        "name": "sectionIds",
                        "description": "Filter results by submissions to these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An object containing the requested averages. Each property matches one of the properties from `\/stats\/editorial`. The value `-1` may be returned for a property if an average can not be calculated. This can occur if there is not a full calendar year of activity to average.",
                        "schema": {
                            "type": "array",
                            "example": {
                                "submissionsReceived": 32,
                                "submissionsAccepted": 32,
                                "submissionsDeclined": 32,
                                "submissionsDeclinedDeskReject": 32,
                                "submissionsDeclinedPostReview": 32,
                                "submissionsPublished": 32
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access editorial statistics for this journal or press.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/contexts": {
            "get": {
                "tags": [
                    "Stats \/ Contexts"
                ],
                "summary": "Get a list of contexts sorted by the number of visits to their homepage.",
                "description": "Returns a list of journals, presses or preprint servers ordered by the number of visitors to their homepage. Only admins can access this endpoint.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for the number of visits after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for the number of visits before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "contextIds",
                        "description": "Filter results by these contexts.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by contexts that match this search phrase. Searches the same context properties as the `searchPhrase` parameter in the `\/contexts` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many contexts to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the contexts returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of contexts with the number of visits during the requested period.",
                        "headers": {
                            "X-Total-Count": {
                                "description": "Only included in `text\/csv` responses. The total number of rows available for this request. Use this with the `count` and `offset` query params to fetch all records.",
                                "schema": {
                                    "type": "integer"
                                }
                            }
                        },
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/ContextStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "ID,Title,Total\n1,Lorem Ipsum,100"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/contexts\/timeline": {
            "get": {
                "tags": [
                    "Stats \/ Contexts"
                ],
                "summary": "Get visits by day or month.",
                "description": "Returns a monthly or daily timeline of the number of visitors to the homepage of each journal, press or preprint server. Only admins can access this endpoint.",
                "parameters": [
                    {
                        "name": "timelineInterval",
                        "description": "Return the total daily or monthly views",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "month",
                        "enum": [
                            "day",
                            "month"
                        ]
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats for contexts after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for contexts before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "contextIds",
                        "description": "Filter results by these contexts.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by contexts that match this search phrase. Searches the same context properties as the `searchPhrase` parameter in the `\/contexts` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of days or months with the total stats for that day or month.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/TimelineInterval"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Date,Label,Total\n2023-03-04,\"March 4, 2023\",532\n2023-03-05,\"March 5, 2023\",351"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/contexts\/{contextId}": {
            "get": {
                "tags": [
                    "Stats \/ Contexts"
                ],
                "summary": "Get the number of views of a context's homepage.",
                "description": "Returns the number of views of the homepage of a journal, press or preprint server.",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "The context ID.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The total stats for the context during the period requested.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/definitions\/ContextStats"
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "ID,Title,Total\n1,Lorem Ipsum,100"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested resource was not found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/contexts\/{contextId}\/timeline": {
            "get": {
                "tags": [
                    "Stats \/ Contexts"
                ],
                "summary": "Get visits to one context by day or month.",
                "description": "Returns a monthly or daily timeline of visits to the homepage of this context.",
                "parameters": [
                    {
                        "name": "contextId",
                        "description": "The context ID.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "timelineInterval",
                        "description": "Return the total daily or monthly views",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "month",
                        "enum": [
                            "day",
                            "month"
                        ]
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of days or months with the total stats for that day or month.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/TimelineInterval"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Date,Label,Total\n2023-03-04,\"March 4, 2023\",532\n2023-03-05,\"March 5, 2023\",351"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested resource was not found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/issues": {
            "get": {
                "tags": [
                    "Stats \/ Issues"
                ],
                "summary": "Get a list of issues ordered by the number of visits it received.",
                "description": "Returns a list of issues ordered by the total visits it received, based on the number of views of the TOC and the number of downloads of the issue galley.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for issues after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for issues before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by issues that match this search phrase. Searches the same issue properties as the `searchPhrase` parameter in the `\/issues` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many issues to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the issues returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of issues with their total stats during the requested period.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/IssueStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "ID,\"Issue Identification\",Total,Views,Downloads\n123,\"Vol. 1, No. 2: Special issue name\",823,612,211"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/issues\/timeline": {
            "get": {
                "tags": [
                    "Stats \/ Issues"
                ],
                "summary": "Get visits by day or month.",
                "description": "Returns a monthly or daily timeline of an issue's stats.",
                "parameters": [
                    {
                        "name": "timelineInterval",
                        "description": "Return the total daily or monthly views",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "month",
                        "enum": [
                            "day",
                            "month"
                        ]
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats for issues after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for issues before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by issues that match this search phrase. Searches the same issue properties as the `searchPhrase` parameter in the `\/issues` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "description": "Whether to return a timeline based on views of the issue's table of contents or downloads of the issue's galley. Default: table of contents views.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "enum": [
                            "files"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of days or months with the total stats for that day or month.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/TimelineInterval"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Date,Label,\n2023-01-02,\"January 2, 2023\",7341"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/issues\/{issueId}": {
            "get": {
                "tags": [
                    "Stats \/ Issues"
                ],
                "summary": "Get the visitor statistics for one issue.",
                "description": "Returns an issue's view and download statistics broken down by type of request.",
                "parameters": [
                    {
                        "name": "issueId",
                        "description": "The issue ID.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The total stats for the issue during the period requested.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "$ref": "#\/definitions\/IssueStats"
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "ID,\"Issue Identification\",Total,Views,Downloads\n123,\"Vol. 1, No. 2: Special issue name\",823,612,211"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested resource was not found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/issues\/{issueId}\/timeline": {
            "get": {
                "tags": [
                    "Stats \/ Issues"
                ],
                "summary": "Get one issue's visits by day or month.",
                "description": "Returns a monthly or daily timeline of visits to the issue.",
                "parameters": [
                    {
                        "name": "issueId",
                        "description": "The issue ID.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "timelineInterval",
                        "description": "Return the total daily or monthly views",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "month",
                        "enum": [
                            "day",
                            "month"
                        ]
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "description": "Whether to return a timeline based on views of the issue table of contents or downloads of the issue galley. Default: table of contents views.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "enum": [
                            "files"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of days or months with the total stats for that day or month.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/TimelineInterval"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Date,Label,\n2023-01-02,\"January 2, 2023\",7341"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested resource was not found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get a list of publications ordered by visits.",
                "description": "Returns a list of publications ordered by the total number of views.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for publications after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for publications before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by publications in these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by publications in these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionIds",
                        "description": "Filter results by these submissions.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by publications that match this search phrase. Searches the same submission properties as the `searchPhrase` parameter in the `\/submissions` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many publications to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the publications returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of publications with the number of visits during the requested period.",
                        "headers": {
                            "X-Total-Count": {
                                "description": "Only included in `text\/csv` responses. The total number of rows available for this request. Use this with the `count` and `offset` query params to fetch all records.",
                                "schema": {
                                    "type": "integer"
                                }
                            }
                        },
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/PublicationStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "ID,Title,Total,Abstract Views,File Views,PDF,HTML,Other\n1,Lorem Ipsum,100,70,30,20,10,0"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/timeline": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get visits by day or month.",
                "description": "Returns a monthly or daily timeline of visits to the publications which match the request parameters.",
                "parameters": [
                    {
                        "name": "timelineInterval",
                        "description": "Return the daily or monthly values.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "month",
                        "enum": [
                            "day",
                            "month"
                        ]
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats for publications after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for publications before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by publications in these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by publications in these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionIds",
                        "description": "Filter results by these submissions.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by publications that match this search phrase. Searches the same submission properties as the `searchPhrase` parameter in the `\/submissions` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "description": "Whether to return a timeline based on abstract page views or file downloads. Default: abstract page views.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "enum": [
                            "files"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of days or months with the total stats for that day or month.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/TimelineInterval"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Date,Label,\n2023-01-02,\"January 2, 2023\",7341"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/{submissionId}": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get one publication's stats.",
                "description": "Returns a publication's number of visits and downloads broken down by type.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "The submission ID.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The total stats for the publication during the period requested.",
                        "schema": {
                            "$ref": "#\/definitions\/PublicationStats"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested resource was not found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/{submissionId}\/timeline": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get one publication's visits by day or month.",
                "description": "Returns a monthly or daily timeline of visits to the publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "The submission ID.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "timelineInterval",
                        "description": "Return the total daily or monthly views",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "month",
                        "enum": [
                            "day",
                            "month"
                        ]
                    },
                    {
                        "name": "dateStart",
                        "description": "Return stats after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "type",
                        "description": "Whether to return a timeline based on abstract page views or file downloads. Default: abstract page views.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "enum": [
                            "files"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of days or months with the total stats for that day or month.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/TimelineInterval"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested resource was not found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/files": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get a list of published files ordered by downloads.",
                "description": "Returns a list of published files ordered by their total downloads.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for publications after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for publications before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by publications in these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by publications in these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionIds",
                        "description": "Filter results by these submissions.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by publications that match this search phrase. Searches the same submission properties as the `searchPhrase` parameter in the `\/submissions` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many files to return in a single request. Max is 100.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the files returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of files with their total stats during the requested period.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/PublicationFileStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "\"Publication Id\",Title,\"File Id\",Filename,Type,\"File Views\"\n123,\"Lorem Ipsum\",456,lorem-ipsum-file.pdf,\"Primary File\",789"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/countries": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get a list of countries ordered by the number of visits to publications.",
                "description": "Returns a list of countries ordered by the number of visits to publications from each country. This endpoint is only available when the context has been configured to collect geographical statistics.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for publications after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for publications before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by publications in these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by publications in these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionIds",
                        "description": "Filter results by these submissions.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by publications that match this search phrase. Searches the same submission properties as the `searchPhrase` parameter in the `\/submissions` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many countries to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the countries returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of countries with their total stats during the requested period.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/PublicationCountryStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Country,Total,Unique\nCAN,456,321"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/regions": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get a list of regions ordered by the number of visits to publications.",
                "description": "Returns a list of regions ordered by the number of visits to publications from each region. This endpoint is only available when the context has been configured to collect regional geographical statistics.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for publications after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for publications before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by publications in these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by publications in these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionIds",
                        "description": "Filter results by these submissions.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by publications that match this search phrase. Searches the same submission properties as the `searchPhrase` parameter in the `\/submissions` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many regions to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the regions returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of regions with their total stats during the requested period.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/PublicationRegionStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "Region,Country,Total,Unique\nCA-BC,CA,456,321"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/publications\/cities": {
            "get": {
                "tags": [
                    "Stats \/ Publications"
                ],
                "summary": "Get a list of cities ordered by the number of visits to publications.",
                "description": "Returns a list of cities ordered by the number of visits to publications from each city. This endpoint is only available when the context has been configured to collect city geographical statistics.",
                "parameters": [
                    {
                        "name": "dateStart",
                        "description": "Return stats for publications after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "dateEnd",
                        "description": "Return stats for publications before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "issueIds",
                        "description": "Filter results by publications in these issues.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sectionIds",
                        "description": "Filter results by publications in these sections.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "submissionIds",
                        "description": "Filter results by these submissions.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by publications that match this search phrase. Searches the same submission properties as the `searchPhrase` parameter in the `\/submissions` endpoint.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "description": "How many cities to return in a single request. Max is `100`.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the cities returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "orderDirection",
                        "description": "Return the results in ascending or descending order.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "DESC",
                        "enum": [
                            "ASC",
                            "DESC"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of cities with their total stats during the requested period.",
                        "content": {
                            "application\/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/PublicationCityStats"
                                    }
                                }
                            },
                            "text\/csv": {
                                "schema": {
                                    "type": "string"
                                },
                                "example": "City,Region,Country,Total,Unique\nCA-BC-Vancouver,CA-BC,CA,456,321"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access statistics for this journal, press or preprint server.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/stats\/users": {
            "get": {
                "tags": [
                    "Stats \/ Users"
                ],
                "summary": "Get user statistics.",
                "description": "Returns a count of the number of registered users by role. The `registeredBefore` and `registeredAfter` params reflect current user roles. A user who registered as an author in January, 2019 but was later appointed to subeditor will be counted as a subeditor when the registration date range includes January, 2019, even though they did not become a subeditor until a later date.",
                "parameters": [
                    {
                        "name": "registeredAfter",
                        "description": "Include users who registered after this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "registeredBefore",
                        "description": "Include users who registered before this date.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "status",
                        "description": "Whether to include `active`, `disabled` or all users. Default: `active`.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "default": "active",
                        "enum": [
                            "active",
                            "disabled",
                            "all"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The user registration stats broken down by role.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": [
                                            "integer",
                                            "string"
                                        ],
                                        "description": "One of the `ROLE_ID_*` constants. Or `total` for users in all roles."
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "A user-facing name for the role."
                                    },
                                    "value": {
                                        "type": "integer",
                                        "description": "The number of registered users in this role."
                                    }
                                }
                            },
                            "example": [
                                {
                                    "id": "total",
                                    "name": "Total",
                                    "value": 304
                                },
                                {
                                    "id": 16,
                                    "name": "Journal Manager",
                                    "value": 4
                                },
                                {
                                    "id": 17,
                                    "name": "Section Editor",
                                    "value": 14
                                },
                                {
                                    "id": 4097,
                                    "name": "Assistant",
                                    "value": 1
                                },
                                {
                                    "id": 65536,
                                    "name": "Author",
                                    "value": 220
                                },
                                {
                                    "id": 4096,
                                    "name": "Reviewer",
                                    "value": 107
                                },
                                {
                                    "id": 1048576,
                                    "name": "Reader",
                                    "value": 207
                                },
                                {
                                    "id": 2097152,
                                    "name": "Subscription Manager",
                                    "value": 0
                                }
                            ]
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "Your request was not valid. One or more of the request parameters will be invalid. The error message will contain details about the invalid parameter.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to access user statistics for this journal or press.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/vocabs": {
            "get": {
                "tags": [
                    "Vocabs"
                ],
                "summary": "Get controlled vocab entries.",
                "parameters": [
                    {
                        "name": "vocab",
                        "description": "The type of controlled vocab you want to retrieve entries for. One of `CONTROLLED_VOCAB_*`.",
                        "in": "query",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "locale",
                        "description": "The locale key, such as `en`, you want to retrieve entries for. If no `locale` is provided, entries will be provided in the user's current locale or fall back to the journal's primary locale.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of the entries available in this journal.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The `locale` that you requested is not supported in this journal.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The journal you requested could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/vocabs\/interests": {
            "get": {
                "tags": [
                    "Vocabs"
                ],
                "summary": "Get user interests vocabulary.",
                "description": "Returns a list of all user interests stored site-wide. This endpoint is publicly accessible and does not require authentication. Interests are not multilingual and are shared across the entire application.",
                "parameters": [
                    {
                        "name": "term",
                        "description": "Optional search term to filter interests by partial name matching.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "A list of interest entries.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "The name of the interest"
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "\/temporaryFiles": {
            "options": {
                "tags": [
                    "Temporary Files"
                ],
                "summary": "Get headers for file uploads.",
                "description": "Responds with the appropriate headers to indicate file uploads may be sent. Required by some file upload utilities which send a preflight request.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    }
                }
            },
            "post": {
                "tags": [
                    "Temporary Files"
                ],
                "summary": "Upload a file.",
                "description": "Upload a file to the temporary file storage area and receive a temporary file ID.",
                "parameters": [
                    {
                        "name": "...",
                        "description": "Use any parameter key to upload your file. The API endpoint will retrieve the first uploaded file.",
                        "in": "body"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The temporary file ID to use in other API requests.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "documentType": {
                                    "type": "string"
                                },
                                "id": {
                                    "type": "integer"
                                },
                                "mimetype": {
                                    "type": "string"
                                },
                                "name": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "No uploaded file could be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/_payments": {
            "put": {
                "tags": [
                    "Backend"
                ],
                "summary": "Save payment settings.",
                "description": "This endpoint is used on the settings page to save payment plugin settings alongside the general journal settings for enabling payments and setting the currency.",
                "parameters": [
                    {
                        "description": "None of these properties are required. In addition to `paymentsEnabled` and `currency`, you may pass any property that corresponds with a setting for an enabled `paymethod` plugin.",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "paymentsEnabled": {
                                    "type": "boolean"
                                },
                                "currency": {
                                    "type": "string"
                                },
                                "...": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The parameters you submitted"
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    }
                }
            }
        },
        "\/_uploadPublicFile": {
            "options": {
                "tags": [
                    "Backend"
                ],
                "summary": "Get headers for file uploads.",
                "description": "Responds with the appropriate headers to indicate file uploads may be sent. Required by some file upload utilities which send a preflight request.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    }
                }
            },
            "post": {
                "tags": [
                    "Backend"
                ],
                "summary": "Upload a file.",
                "description": "The user's public file directory supports files uploaded through the TinyMCE rich text editor. This is commonly used in context settings but is also available to all registered users through their profile biography.",
                "parameters": [
                    {
                        "name": "file",
                        "description": "Use the `file` key to upload your file.",
                        "in": "body"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An object containing the URL to the uploaded file.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "One of the following errors occurred.\n* No uploaded file could be found.\n* This file type is not supported.\n* The file you uploaded identifies itself as an image but it is not a valid image.\n* The mime-type did not match the file extension.\n* The file is too large.\n* The server configuration could not support this file upload because there is no temporary directory, it doesn't have permission to write to the directory, or a PHP extension stopped the file upload.\n\nThe error message will contain further details.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to upload this public file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "409": {
                        "description": "The upload failed for an unknown reason.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "413": {
                        "description": "Your user file directory is full.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "500": {
                        "description": "The server is unable to read or write to the public files directory.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/_submissions": {
            "get": {
                "tags": [
                    "Backend"
                ],
                "summary": "Get submissions.",
                "description": "This endpoint delivers a little bit of extra information about each submission that is used in the submissions list. This private endpoint saves a few extra HTTP requests, but it is more database-intensive for each query.",
                "parameters": [
                    {
                        "description": "Accepts most parameters supported by the public `\/submissions` endpoint."
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of submissions."
                    }
                }
            }
        },
        "\/_submissions\/assigned": {
            "get": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Get a list of submissions assigned to a user",
                "parameters": [
                    {
                        "description": "Accepts most parameters supported by the public `\/submissions` endpoint."
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of submissions."
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/_submissions\/reviews": {
            "get": {
                "tags": [
                    "Submissions"
                ],
                "summary": "Get a list of submissions in a review stage",
                "parameters": [
                    {
                        "name": "needsReviews",
                        "description": "Filter results by submissions without configured limit of confirmed reviews",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "awaitingReviews",
                        "description": "Filter results by those awaiting reply from reviewers",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "reviewsSubmitted",
                        "description": "Filter results by those where reviews were submitted by reviewers",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "reviewsOverdue",
                        "description": "Filter results by those with one or more overdue review assignment",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "revisionsRequested",
                        "description": "Filter results by those in the review stage where file revision is requested from the author",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of submissions."
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/_submissions\/viewsCount": {
            "get": {
                "tags": [
                    "Submissions \/ DashboardViews"
                ],
                "summary": "Get a collection of views count",
                "description": "This endpoint delivers the count of submissions and review assignments for all views available to the user",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of dashboard views name (key) and count (value) pairs.",
                        "schema": {
                            "type": "object"
                        }
                    }
                }
            }
        },
        "\/contexts\/{contextId}\/registrationAgency": {
            "put": {
                "tags": [
                    "Backend"
                ],
                "summary": "Edit registration agency plugin settings",
                "description": "This endpoint is for directly editing DOI registration agency plugin settings. It is used as part of the unified DOI management settings options in the UI. (Prior to 3.5 this was exposed at `\/contexts\/editDoiRegistrationAgencyPlugin`.)",
                "parameters": [
                    {
                        "name": "contextId",
                        "in": "path",
                        "description": "Context (journal, press, or preprint server) ID",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "Settings",
                        "description": "Parameters in addition to those listed will be specific to the plugin and its settings.",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "enabledRegistrationAgency": {
                                    "type": "string"
                                },
                                "automaticDeposit": {
                                    "type": "boolean"
                                }
                            },
                            "additionalProperties": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the DOI registration settings and updated plugin settings.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "enabledRegistrationAgency": {
                                    "type": "string"
                                },
                                "automaticDeposit": {
                                    "type": "boolean"
                                }
                            },
                            "additionalProperties": true
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "The error indicates one of the following:\n*You are not allowed to edit one context from a different context's endpoint\n* You are not allowed to edit a context-specific plugin from the site-wide endpoint. You must use a context (journal\/press\/server) endpoint.\n* You do not have permission to edit this context (journal\/press\/server).",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The context could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/orcid\/requestAuthorVerification\/{authorId}": {
            "post": {
                "tags": [
                    "ORCID"
                ],
                "summary": "Allows Journal Manager and Editors to send email request to an author to link their ORCID to a submission in OJS.",
                "parameters": [
                    {
                        "name": "authorId",
                        "in": "path",
                        "description": "Author ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to send ORCID verification requests or ORCID is not enabled.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "A resource was not found.",
                        "description": "Could not find author or there are no context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/orcid\/deleteForAuthor\/{authorId}": {
            "post": {
                "tags": [
                    "ORCID"
                ],
                "summary": "Allows Journal Manager and Editors to revoke an author's ORCID and access tokens associated with a submission.",
                "parameters": [
                    {
                        "name": "authorId",
                        "in": "path",
                        "description": "Author ID",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "An empty response body."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to revoke an author's ORCID access and token data, or ORCID is not enabled.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "A resource was not found.",
                        "description": "Could not find author or there are no context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/sections": {
            "get": {
                "tags": [
                    "Sections"
                ],
                "summary": "Get a collection of sections.",
                "description": "Get a list of all sections that have been added to this journal, press or preprint server.",
                "parameters": [
                    {
                        "name": "count",
                        "description": "How many results to return in a single request.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against the section title or abbreviation.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "title",
                        "description": "Filter results by sections whose title contains this string.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "abbrev",
                        "description": "Filter results by sections whose abbreviation matches this string.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "isInactive",
                        "description": "Filter results by active or inactive sections.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "editorIds",
                        "description": "Filter results by one or more user IDs assigned to a section as an editor.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of sections.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/SectionSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view sections in this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/sections\/{sectionId}": {
            "get": {
                "tags": [
                    "Sections"
                ],
                "summary": "Get a section.",
                "parameters": [
                    {
                        "name": "sectionId",
                        "description": "Section ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Section details.",
                        "schema": {
                            "$ref": "#\/definitions\/Section"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this section.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested section could not be found, or is not part of this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/rors": {
            "get": {
                "tags": [
                    "RORs"
                ],
                "summary": "Get a collection of ROR records.",
                "description": "Get a list of cached records from the [Research Organization Registry (ROR)](https:\/\/blue-sea-697d.quartiers047.workers.dev:443\/https\/ror.org\/), used to identify institutions for author affiliations.",
                "parameters": [
                    {
                        "name": "count",
                        "description": "How many results to return in a single request.",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "description": "Offset the results returned. Use this to receive subsequent pages of requests.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "searchPhrase",
                        "description": "Filter results by a search phrase matched against ROR identifiers and institution names.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of ROR records.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/RorSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view ROR records.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "RORs"
                ],
                "summary": "Add or update a ROR record.",
                "description": "Add a new record to the local ROR cache, or update an existing one if a record with the same ROR identifier already exists.",
                "parameters": [
                    {
                        "name": "Ror",
                        "description": "The ROR record to add or update.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/RorEditable"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the ROR record that was added or updated.",
                        "schema": {
                            "$ref": "#\/definitions\/Ror"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to add or edit ROR records.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/rors\/{rorId}": {
            "get": {
                "tags": [
                    "RORs"
                ],
                "summary": "Get a ROR record.",
                "parameters": [
                    {
                        "name": "rorId",
                        "description": "The internal ID of the ROR record.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "ROR record details.",
                        "schema": {
                            "$ref": "#\/definitions\/Ror"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view ROR records.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The requested ROR record could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/reviewers\/suggestions": {
            "get": {
                "tags": [
                    "Submissions \/ Reviewer Suggestions"
                ],
                "summary": "Get reviewer suggestions for a submission.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "approved",
                        "description": "An optional parameter that filters suggestions by whether they have been approved by an editor.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "include_reviewer_data",
                        "description": "When `true`, includes a `reviewer` summary in each suggestion that has been linked to a reviewer assignment.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of reviewer suggestions.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "itemsMax": {
                                    "type": "integer"
                                },
                                "items": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/ReviewerSuggestion"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view reviewer suggestions for this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions \/ Reviewer Suggestions"
                ],
                "summary": "Add a reviewer suggestion to a submission.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "ReviewerSuggestion",
                        "description": "Details about the reviewer being suggested.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ReviewerSuggestion"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the reviewer suggestion that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/ReviewerSuggestion"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to add a reviewer suggestion to this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/reviewers\/suggestions\/{suggestionId}": {
            "get": {
                "tags": [
                    "Submissions \/ Reviewer Suggestions"
                ],
                "summary": "Get a reviewer suggestion.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "suggestionId",
                        "description": "Reviewer Suggestion ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Reviewer suggestion details.",
                        "schema": {
                            "$ref": "#\/definitions\/ReviewerSuggestion"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this reviewer suggestion.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The reviewer suggestion could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "put": {
                "tags": [
                    "Submissions \/ Reviewer Suggestions"
                ],
                "summary": "Edit a reviewer suggestion.",
                "description": "Edit a reviewer suggestion or, by setting `approvedAt`, approve it so that it can be turned into a reviewer assignment. Unlike most edit endpoints, this one requires the full suggestion payload \u2014 `givenName`, `email`, `affiliation`, and `suggestionReason` must all be sent on every PUT.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "suggestionId",
                        "description": "Reviewer Suggestion ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "ReviewerSuggestion",
                        "description": "The updated suggestion details. `givenName`, `email`, `affiliation`, and `suggestionReason` are required on every request, even when only changing one of them.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/ReviewerSuggestion"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The reviewer suggestion after the edit has been applied.",
                        "schema": {
                            "$ref": "#\/definitions\/ReviewerSuggestion"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to edit this reviewer suggestion.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The reviewer suggestion could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Submissions \/ Reviewer Suggestions"
                ],
                "summary": "Delete a reviewer suggestion.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "suggestionId",
                        "description": "Reviewer Suggestion ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The suggestion was deleted. The response body is an empty array `[]`."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete this reviewer suggestion.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The reviewer suggestion could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/submissions\/{submissionId}\/publications\/{publicationId}\/jats": {
            "get": {
                "tags": [
                    "Submissions \/ JATS"
                ],
                "summary": "Get the JATS XML for a submission's publication.",
                "description": "Returns a JSON object containing the JATS XML for the specified publication. The XML is exposed via the `jatsContent` string property. It may have been generated dynamically from publication metadata (`isDefaultContent: true`) or read from an uploaded JATS XML source file (`isDefaultContent: false`); when an uploaded source file is used, its summary properties are also included in the response.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "description": "Publication ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The JATS XML and metadata for the publication.",
                        "schema": {
                            "$ref": "#\/definitions\/JatsFile"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view the JATS XML for this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Submissions \/ JATS"
                ],
                "summary": "Upload a JATS XML source file for a submission's publication.",
                "description": "Attach an uploaded JATS XML file to the submission's publication. The file is sent as a `multipart\/form-data` upload in a field named `file`.",
                "consumes": [
                    "multipart\/form-data"
                ],
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "description": "Publication ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "file",
                        "description": "The JATS XML file to attach to this publication.",
                        "in": "formData",
                        "required": true,
                        "type": "file"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The JATS XML and metadata for the publication after the upload.",
                        "schema": {
                            "$ref": "#\/definitions\/JatsFile"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "No file was provided in the request, or the upload failed.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to upload a JATS XML file for this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Submissions \/ JATS"
                ],
                "summary": "Delete the JATS XML source file for a submission's publication.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "description": "Submission ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "publicationId",
                        "description": "Publication ID",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The JATS XML and metadata for the publication after the deletion. With the uploaded source file removed, the response will fall back to dynamically generated content (`isDefaultContent: true`).",
                        "schema": {
                            "$ref": "#\/definitions\/JatsFile"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete the JATS XML file for this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or publication could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{type}": {
            "get": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Get a collection of invitations of a given type.",
                "parameters": [
                    {
                        "name": "type",
                        "description": "The invitation type (e.g. the slug identifying the invitation class).",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "count",
                        "in": "query",
                        "required": false,
                        "type": "integer",
                        "default": 30
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    },
                    {
                        "name": "status",
                        "description": "Filter by invitation status.",
                        "in": "query",
                        "required": false,
                        "type": "string",
                        "enum": [
                            "initialized",
                            "pending",
                            "accepted",
                            "declined",
                            "cancelled"
                        ]
                    },
                    {
                        "name": "invitee",
                        "description": "Filter by invitee email or user ID.",
                        "in": "query",
                        "required": false,
                        "type": "string"
                    },
                    {
                        "name": "inviter",
                        "description": "Filter by the user ID of the inviter.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of invitations."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to list invitations of this type.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}": {
            "get": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Get a single invitation.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Invitation details."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The invitation could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/add\/{type}": {
            "post": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Create a new invitation.",
                "description": "Create a new invitation of the given `type`. The request body should contain the data required to populate the invitation (such as invitee email, target context ID, and role assignments).",
                "parameters": [
                    {
                        "name": "type",
                        "description": "The type of invitation to create.",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "Invitation",
                        "description": "The invitation payload. The exact properties depend on the invitation type.",
                        "in": "body",
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The created invitation."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to create invitations of this type.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/populate": {
            "put": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Populate an invitation with additional data.",
                "description": "Update an invitation in progress with additional payload data before it is sent.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "Invitation",
                        "description": "Additional invitation payload.",
                        "in": "body",
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The populated invitation."
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to populate this invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/invite": {
            "put": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Send the invitation to the invitee.",
                "description": "Marks the invitation as sent and dispatches the invitation email to the invitee.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The invitation that was just sent."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to send this invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/getMailable": {
            "get": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Get the mailable that will be used to send this invitation.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The mailable that will be used to send this invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/Mailable"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view the mailable for this invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/cancel": {
            "put": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Cancel an invitation.",
                "description": "Cancels a pending invitation so that it can no longer be accepted.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The invitation was cancelled successfully. The response body is an empty array `[]`."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to cancel this invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The invitation could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/key\/{key}": {
            "get": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Retrieve an invitation using its access key.",
                "description": "Retrieve the details of an invitation using its public access key. This endpoint does not require authentication and is used to display invitation details to the invitee before they accept, refine or decline.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "key",
                        "description": "The single-use access key sent to the invitee.",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The invitation details.",
                        "schema": {
                            "$ref": "#\/definitions\/UserRoleAssignmentInvite"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The invitation could not be found, or the key does not match.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/key\/{key}\/finalize": {
            "put": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Finalize (accept) an invitation using its access key.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "key",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The finalized invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/UserRoleAssignmentInvite"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The invitation cannot be finalized in its current state.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The invitation could not be found, or the key does not match.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/key\/{key}\/refine": {
            "put": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Refine an invitation before accepting it.",
                "description": "Allows the invitee to update some of the invitation payload (for example to provide additional information about themselves) before finalizing.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "key",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "name": "Invitation",
                        "description": "The updated invitation payload.",
                        "in": "body",
                        "schema": {
                            "type": "object"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The refined invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/UserRoleAssignmentInvite"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The invitation could not be found, or the key does not match.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/invitations\/{invitationId}\/key\/{key}\/decline": {
            "put": {
                "tags": [
                    "Invitations"
                ],
                "summary": "Decline an invitation using its access key.",
                "parameters": [
                    {
                        "name": "invitationId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "key",
                        "in": "path",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The declined invitation.",
                        "schema": {
                            "$ref": "#\/definitions\/UserRoleAssignmentInvite"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The invitation could not be found, or the key does not match.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/reviews\/history\/{submissionId}\/{reviewRoundId}": {
            "get": {
                "tags": [
                    "Reviews"
                ],
                "summary": "Get the review history for a review round.",
                "description": "Returns the **calling reviewer's** review-round data for the given submission and round: publication metadata at the time of the review, the review assignment itself, the recommendation, comments, attachments, and the submission files that were under review. The endpoint filters by the authenticated user as the reviewer, so an editor or admin calling it without being personally assigned will receive a 404.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "reviewRoundId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Aggregated review-round data: publication metadata at the time of review, the review assignment itself, the reviewer's recommendation, viewable and private comments, attachments, and submission files.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "publicationTitle": {
                                    "$ref": "#\/definitions\/LocaleObject"
                                },
                                "publicationType": {
                                    "$ref": "#\/definitions\/LocaleObject"
                                },
                                "publicationAbstract": {
                                    "$ref": "#\/definitions\/LocaleObject"
                                },
                                "publicationKeywords": {
                                    "type": "object",
                                    "description": "Keywords keyed by locale."
                                },
                                "declineEmail": {
                                    "type": "object",
                                    "description": "Decline-email metadata, if the review was declined."
                                },
                                "reviewAssignment": {
                                    "$ref": "#\/definitions\/ReviewAssignment"
                                },
                                "recommendation": {
                                    "type": "string",
                                    "description": "The reviewer's localized recommendation."
                                },
                                "comments": {
                                    "type": "array",
                                    "items": {
                                        "type": "object"
                                    },
                                    "description": "Comments visible to the author."
                                },
                                "privateComments": {
                                    "type": "array",
                                    "items": {
                                        "type": "object"
                                    },
                                    "description": "Comments visible only to editors."
                                },
                                "attachments": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/SubmissionFileSummary"
                                    }
                                },
                                "files": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#\/definitions\/SubmissionFileSummary"
                                    }
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view the review history for this submission.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or review round could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/reviews\/{submissionId}\/{reviewAssignmentId}\/confirmReview": {
            "put": {
                "tags": [
                    "Reviews"
                ],
                "summary": "Confirm a review assignment.",
                "description": "Accept or decline a review assignment on behalf of the assigned reviewer.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "reviewAssignmentId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "ConfirmReview",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "required": [
                                "decision"
                            ],
                            "properties": {
                                "decision": {
                                    "type": "string",
                                    "description": "Whether the reviewer is accepting or declining the assignment.",
                                    "enum": [
                                        "accept",
                                        "decline"
                                    ]
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The confirmed review assignment. The properties of the `ReviewAssignment` schema are returned wrapped in a top-level `_data` object \u2014 i.e. the response body looks like `{\"_data\": { \u2026 review assignment properties \u2026 }}`. This wrapper is a side-effect of the controller returning the raw data object without schema-mapping.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "_data": {
                                    "$ref": "#\/definitions\/ReviewAssignment"
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to confirm this review assignment.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or review assignment could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/reviews\/{submissionId}\/{reviewAssignmentId}\/export-pdf": {
            "get": {
                "tags": [
                    "Reviews"
                ],
                "summary": "Export a review assignment as a PDF.",
                "description": "Generates a PDF copy of the review response and stores it as a temporary file. The file can then be downloaded via `\/reviews\/{submissionId}\/exports\/{fileId}` using the returned `temporaryFileId`.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "reviewAssignmentId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "authorFriendly",
                        "description": "Required. Pass `\"1\"` to render the exported file in an author-friendly format that anonymises reviewer identities, or `\"0\"` for the reviewer-facing version. Sent as a string, not a boolean.",
                        "in": "query",
                        "required": true,
                        "type": "string",
                        "enum": [
                            "0",
                            "1"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The ID of the temporary file containing the exported PDF.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer"
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to export this review.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or review assignment could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/reviews\/{submissionId}\/{reviewAssignmentId}\/export-xml": {
            "get": {
                "tags": [
                    "Reviews"
                ],
                "summary": "Export a review assignment as XML.",
                "description": "Generates a JATS XML representation of the review response and stores it as a temporary file. The file can then be downloaded via `\/reviews\/{submissionId}\/exports\/{fileId}` using the returned `temporaryFileId`.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "reviewAssignmentId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "authorFriendly",
                        "description": "Required. Pass `\"1\"` to render the exported file in an author-friendly format that anonymises reviewer identities, or `\"0\"` for the reviewer-facing version. Sent as a string, not a boolean.",
                        "in": "query",
                        "required": true,
                        "type": "string",
                        "enum": [
                            "0",
                            "1"
                        ]
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The ID of the temporary file containing the exported XML.",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "temporaryFileId": {
                                    "type": "integer"
                                }
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to export this review.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or review assignment could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/reviews\/{submissionId}\/exports\/{fileId}": {
            "get": {
                "tags": [
                    "Reviews"
                ],
                "summary": "Download an exported review file.",
                "description": "Streams the temporary file produced by `\/reviews\/{submissionId}\/{reviewAssignmentId}\/export-pdf` or `\/reviews\/{submissionId}\/{reviewAssignmentId}\/export-xml` to the client as a file download.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "fileId",
                        "description": "The `temporaryFileId` returned by the export-pdf or export-xml endpoints.",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The exported file is streamed in the response body as a binary download."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to download this file.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The file could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/reviews\/{submissionId}\/{reviewAssignmentId}\/sendToOrcid": {
            "post": {
                "tags": [
                    "Reviews"
                ],
                "summary": "Submit a completed review to ORCID.",
                "description": "Queues a job that deposits the completed review as a work on the reviewer's ORCID record. The reviewer must have an authorized ORCID iD on file. The deposit happens asynchronously; on success the review assignment's `orcidReviewPutCode` is updated in the background.",
                "parameters": [
                    {
                        "name": "submissionId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "reviewAssignmentId",
                        "in": "path",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "The deposit job was queued successfully. The response body is an empty array `[]`."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to send this review to ORCID, or ORCID is not enabled for this context.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The submission or review assignment could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/categories": {
            "get": {
                "tags": [
                    "Categories"
                ],
                "summary": "Get a list of categories. Returns top-level categories with their nested sub-categories.",
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of categories.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/Category"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to get categories.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Categories"
                ],
                "summary": "Create a new category.",
                "parameters": [
                    {
                        "description": "Details about the category that should be created.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/CategoryEditable"
                        }
                    },
                    {
                        "name": "parentCategoryId",
                        "description": "ID of the parent category under which the new category should be created.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the category that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/Category"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to create categories.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource not found",
                        "description": "There are no categories with ID matching the parentCategoryId param.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/categories\/{categoryId}": {
            "put": {
                "tags": [
                    "Categories"
                ],
                "summary": "Edit category.",
                "parameters": [
                    {
                        "description": "Details about the category that should edited.",
                        "in": "body",
                        "schema": {
                            "$ref": "#\/definitions\/CategoryEditable"
                        }
                    },
                    {
                        "description": "Category ID",
                        "name": "categoryId",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the category that was just edited.",
                        "schema": {
                            "$ref": "#\/definitions\/Category"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation. The response will contain information about which parameters failed validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to get edit categories.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource not found",
                        "description": "There are no category with ID matching the categoryId path param.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Categories"
                ],
                "summary": "Delete a category.",
                "description": "Delete a category by ID.",
                "parameters": [
                    {
                        "name": "categoryId",
                        "description": "Category ID",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Empty response."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to delete this category.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Request Not Found",
                        "description": "The category could not be found.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/comments": {
            "get": {
                "tags": [
                    "Comments"
                ],
                "summary": "Get a list of comments. This endpoint is only available to moderators.",
                "parameters": [
                    {
                        "name": "publicationIds",
                        "description": "Filter comments by those associated to the given publication IDs.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "userIds",
                        "description": "Filter comments by those created by the given user IDs.",
                        "in": "query",
                        "required": false,
                        "type": "array",
                        "items": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "isReported",
                        "description": "Filter comments based on whether they have been reported.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "isApproved",
                        "description": "Filter comments by approval status.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    },
                    {
                        "name": "page",
                        "description": "The pagination page number to retrieve records from.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of comments.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/UserComment"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view comments.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Comments"
                ],
                "summary": "Create a new comment.",
                "parameters": [
                    {
                        "description": "Details about the comment to be created.",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "publicationId": {
                                    "type": "integer",
                                    "description": "The ID of the publication the comment is to be created for.",
                                    "required": true
                                },
                                "commentText": {
                                    "type": "string",
                                    "description": "The content of the comment.",
                                    "required": true
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the comment that was just added.",
                        "schema": {
                            "$ref": "#\/definitions\/UserComment"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to create comments. This typically means that you're not logged in.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/comments\/public": {
            "get": {
                "tags": [
                    "Comments"
                ],
                "summary": "Get a list of approved comments for a specific publication.",
                "description": "This endpoint is publicly accessible. It returns only approved comments, except for the user's own unapproved comments if they are logged in.",
                "parameters": [
                    {
                        "name": "publicationId",
                        "description": "Filter comments by those associated to the given publication ID.",
                        "in": "query",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "name": "page",
                        "description": "The pagination page number to retrieve records from.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of approved comments for the given publication. If a user is logged in, their own unapproved comments will also be included.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/UserComment"
                            }
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The `publicationId` parameter is required.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No publication was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/comments\/{commentId}": {
            "get": {
                "tags": [
                    "Comments"
                ],
                "summary": "Get details for a specific comment. This endpoint is only available to moderators.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment.",
                        "in": "path",
                        "required": true
                    },
                    {
                        "name": "includeReports",
                        "description": "Whether to include any reports associated with this comment.",
                        "in": "query",
                        "required": false,
                        "type": "boolean"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the requested comment.",
                        "schema": {
                            "$ref": "#\/definitions\/UserComment"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this comment.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Comments"
                ],
                "summary": "Delete a comment.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment to delete.",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Empty response."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You are not allowed to delete this comment.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/comments\/{commentId}\/reports": {
            "get": {
                "tags": [
                    "Comments \/ Reports"
                ],
                "summary": "Get a paginated list of reports for a specific comment.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment whose reports should be retrieved.",
                        "in": "path",
                        "required": true
                    },
                    {
                        "name": "page",
                        "description": "The pagination page number to retrieve records from.",
                        "in": "query",
                        "required": false,
                        "type": "integer"
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "List of paginated reports for the given comment.",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#\/definitions\/UserCommentReport"
                            }
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view comment reports.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Comments \/ Reports"
                ],
                "summary": "Report a comment.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment to be reported.",
                        "in": "path",
                        "required": true
                    },
                    {
                        "description": "Details of the report to be created.",
                        "in": "body",
                        "schema": {
                            "type": "object",
                            "properties": {
                                "note": {
                                    "type": "string",
                                    "description": "The note explaining why the comment is being reported.",
                                    "required": true
                                }
                            }
                        }
                    },
                    {
                        "name": "commentId",
                        "description": "ID of the comment being reported.",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the report that was just created.",
                        "schema": {
                            "$ref": "#\/definitions\/UserCommentReport"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to report comments.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Comments \/ Reports"
                ],
                "summary": "Delete all reports for a specific comment.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment whose reports should be deleted.",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Empty response."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete comment reports.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/comments\/{commentId}\/reports\/{reportId}": {
            "get": {
                "tags": [
                    "Comments \/ Reports"
                ],
                "summary": "Get details for a specific comment report.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment whose report should be retrieved.",
                        "in": "path",
                        "required": true
                    },
                    {
                        "name": "reportId",
                        "description": "ID of the report to retrieve.",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the requested comment report.",
                        "schema": {
                            "$ref": "#\/definitions\/UserCommentReport"
                        }
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to view this comment report.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment or report was found with the given IDs.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            },
            "delete": {
                "tags": [
                    "Comments \/ Reports"
                ],
                "summary": "Delete a specific comment report.",
                "parameters": [
                    {
                        "name": "commentId",
                        "description": "ID of the comment whose report should be deleted.",
                        "in": "path",
                        "required": true
                    },
                    {
                        "name": "reportId",
                        "description": "ID of the report to delete.",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Empty response."
                    },
                    "403": {
                        "x-summary": "Request Unauthorized",
                        "description": "You do not have permission to delete this comment report.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment or report was found with the given IDs.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        },
        "\/comments\/{commentId}\/setApproval": {
            "put": {
                "tags": [
                    "Comments"
                ],
                "summary": "Set approval status of a comment",
                "description": "Update the approval status of a specific comment by ID.",
                "parameters": [
                    {
                        "name": "commentId",
                        "in": "path",
                        "description": "ID of the comment to update.",
                        "required": true,
                        "type": "integer"
                    },
                    {
                        "description": "Approval payload for the comment.",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "approved": {
                                    "type": "boolean",
                                    "description": "Set to `true` to approve the comment, or `false` to disapprove it.",
                                    "required": true
                                }
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "x-summary": "Success",
                        "description": "Details of the updated comment.",
                        "schema": {
                            "$ref": "#\/definitions\/UserComment"
                        }
                    },
                    "400": {
                        "x-summary": "Request Invalid",
                        "description": "The values you sent with the request did not pass validation.",
                        "schema": {
                            "$ref": "#\/definitions\/InvalidParametersResponse"
                        }
                    },
                    "404": {
                        "x-summary": "Resource Not Found",
                        "description": "No comment was found with the given ID.",
                        "schema": {
                            "$ref": "#\/definitions\/ErrorResponse"
                        }
                    }
                }
            }
        }
    }
}