---
swagger: "2.0"
info:
  description: "A scalable, versioned, API-oriented catalog of bibliographic entities\
    \ and file metadata"
  version: "0.1.0"
  title: "fatcat"
basePath: "/v0"
schemes:
- "http"
consumes:
- "application/json"
produces:
- "application/json"
paths:
  /creator:
    post:
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/creator_entity"
        uppercase_data_type: "CREATORENTITY"
        refName: "creator_entity"
        formatString: "{:?}"
        example: "???"
        model_key: "changelogentries_inner"
        uppercase_operation_id: "CREATOR_POST"
        consumesJson: true
      responses:
        201:
          description: "Created Entity"
          schema:
            $ref: "#/definitions/entity_edit"
          x-responseId: "CreatedEntity"
          x-uppercaseResponseId: "CREATED_ENTITY"
          uppercase_operation_id: "CREATOR_POST"
          uppercase_data_type: "ENTITYEDIT"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "CREATOR_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "CREATOR_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "CREATOR_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "creator_post"
      uppercase_operation_id: "CREATOR_POST"
      path: "/creator"
      HttpMethod: "Post"
      httpmethod: "post"
      noClientExample: true
  /creator/{id}:
    get:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"id_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/creator_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "CREATOR_ID_GET"
          uppercase_data_type: "CREATORENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "CREATOR_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "CREATOR_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "CREATOR_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "creator_id_get"
      uppercase_operation_id: "CREATOR_ID_GET"
      path: "/creator/:id"
      HttpMethod: "Get"
      httpmethod: "get"
  /creator/lookup:
    get:
      parameters:
      - name: "orcid"
        in: "query"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"orcid_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/creator_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "CREATOR_LOOKUP_GET"
          uppercase_data_type: "CREATORENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "CREATOR_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "CREATOR_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "CREATOR_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "creator_lookup_get"
      uppercase_operation_id: "CREATOR_LOOKUP_GET"
      path: "/creator/lookup"
      HttpMethod: "Get"
      httpmethod: "get"
  /container:
    post:
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/container_entity"
        uppercase_data_type: "CONTAINERENTITY"
        refName: "container_entity"
        formatString: "{:?}"
        example: "???"
        model_key: "changelogentries_inner"
        uppercase_operation_id: "CONTAINER_POST"
        consumesJson: true
      responses:
        201:
          description: "Created Entity"
          schema:
            $ref: "#/definitions/entity_edit"
          x-responseId: "CreatedEntity"
          x-uppercaseResponseId: "CREATED_ENTITY"
          uppercase_operation_id: "CONTAINER_POST"
          uppercase_data_type: "ENTITYEDIT"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "CONTAINER_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "CONTAINER_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "CONTAINER_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "container_post"
      uppercase_operation_id: "CONTAINER_POST"
      path: "/container"
      HttpMethod: "Post"
      httpmethod: "post"
      noClientExample: true
  /container/{id}:
    get:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"id_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/container_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "CONTAINER_ID_GET"
          uppercase_data_type: "CONTAINERENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "CONTAINER_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "CONTAINER_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "CONTAINER_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "container_id_get"
      uppercase_operation_id: "CONTAINER_ID_GET"
      path: "/container/:id"
      HttpMethod: "Get"
      httpmethod: "get"
  /container/lookup:
    get:
      parameters:
      - name: "issnl"
        in: "query"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"issnl_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/container_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "CONTAINER_LOOKUP_GET"
          uppercase_data_type: "CONTAINERENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "CONTAINER_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "CONTAINER_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "CONTAINER_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "container_lookup_get"
      uppercase_operation_id: "CONTAINER_LOOKUP_GET"
      path: "/container/lookup"
      HttpMethod: "Get"
      httpmethod: "get"
  /file:
    post:
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/file_entity"
        uppercase_data_type: "FILEENTITY"
        refName: "file_entity"
        formatString: "{:?}"
        example: "???"
        model_key: "changelogentries_inner"
        uppercase_operation_id: "FILE_POST"
        consumesJson: true
      responses:
        201:
          description: "Created Entity"
          schema:
            $ref: "#/definitions/entity_edit"
          x-responseId: "CreatedEntity"
          x-uppercaseResponseId: "CREATED_ENTITY"
          uppercase_operation_id: "FILE_POST"
          uppercase_data_type: "ENTITYEDIT"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "FILE_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "FILE_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "FILE_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "file_post"
      uppercase_operation_id: "FILE_POST"
      path: "/file"
      HttpMethod: "Post"
      httpmethod: "post"
      noClientExample: true
  /file/{id}:
    get:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"id_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/file_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "FILE_ID_GET"
          uppercase_data_type: "FILEENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "FILE_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "FILE_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "FILE_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "file_id_get"
      uppercase_operation_id: "FILE_ID_GET"
      path: "/file/:id"
      HttpMethod: "Get"
      httpmethod: "get"
  /file/lookup:
    get:
      parameters:
      - name: "sha1"
        in: "query"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"sha1_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/file_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "FILE_LOOKUP_GET"
          uppercase_data_type: "FILEENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "FILE_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "FILE_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "FILE_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "file_lookup_get"
      uppercase_operation_id: "FILE_LOOKUP_GET"
      path: "/file/lookup"
      HttpMethod: "Get"
      httpmethod: "get"
  /release:
    post:
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/release_entity"
        uppercase_data_type: "RELEASEENTITY"
        refName: "release_entity"
        formatString: "{:?}"
        example: "???"
        model_key: "changelogentries_inner"
        uppercase_operation_id: "RELEASE_POST"
        consumesJson: true
      responses:
        201:
          description: "Created Entity"
          schema:
            $ref: "#/definitions/entity_edit"
          x-responseId: "CreatedEntity"
          x-uppercaseResponseId: "CREATED_ENTITY"
          uppercase_operation_id: "RELEASE_POST"
          uppercase_data_type: "ENTITYEDIT"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "RELEASE_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "RELEASE_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "RELEASE_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "release_post"
      uppercase_operation_id: "RELEASE_POST"
      path: "/release"
      HttpMethod: "Post"
      httpmethod: "post"
      noClientExample: true
  /release/{id}:
    get:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"id_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/release_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "RELEASE_ID_GET"
          uppercase_data_type: "RELEASEENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "RELEASE_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "RELEASE_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "RELEASE_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "release_id_get"
      uppercase_operation_id: "RELEASE_ID_GET"
      path: "/release/:id"
      HttpMethod: "Get"
      httpmethod: "get"
  /release/lookup:
    get:
      parameters:
      - name: "doi"
        in: "query"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"doi_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/release_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "RELEASE_LOOKUP_GET"
          uppercase_data_type: "RELEASEENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "RELEASE_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "RELEASE_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "RELEASE_LOOKUP_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "release_lookup_get"
      uppercase_operation_id: "RELEASE_LOOKUP_GET"
      path: "/release/lookup"
      HttpMethod: "Get"
      httpmethod: "get"
  /work:
    post:
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/work_entity"
        uppercase_data_type: "WORKENTITY"
        refName: "work_entity"
        formatString: "{:?}"
        example: "???"
        model_key: "changelogentries_inner"
        uppercase_operation_id: "WORK_POST"
        consumesJson: true
      responses:
        201:
          description: "Created Entity"
          schema:
            $ref: "#/definitions/entity_edit"
          x-responseId: "CreatedEntity"
          x-uppercaseResponseId: "CREATED_ENTITY"
          uppercase_operation_id: "WORK_POST"
          uppercase_data_type: "ENTITYEDIT"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "WORK_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "WORK_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "WORK_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "work_post"
      uppercase_operation_id: "WORK_POST"
      path: "/work"
      HttpMethod: "Post"
      httpmethod: "post"
      noClientExample: true
  /work/{id}:
    get:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"id_example\".to_string()"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/work_entity"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "WORK_ID_GET"
          uppercase_data_type: "WORKENTITY"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "WORK_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "WORK_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "WORK_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "work_id_get"
      uppercase_operation_id: "WORK_ID_GET"
      path: "/work/:id"
      HttpMethod: "Get"
      httpmethod: "get"
  /editor/{username}:
    get:
      parameters:
      - name: "username"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"username_example\".to_string()"
      responses:
        200:
          description: "Found Editor"
          schema:
            $ref: "#/definitions/editor"
          x-responseId: "FoundEditor"
          x-uppercaseResponseId: "FOUND_EDITOR"
          uppercase_operation_id: "EDITOR_USERNAME_GET"
          uppercase_data_type: "EDITOR"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "EDITOR_USERNAME_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "EDITOR_USERNAME_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "editor_username_get"
      uppercase_operation_id: "EDITOR_USERNAME_GET"
      path: "/editor/:username"
      HttpMethod: "Get"
      httpmethod: "get"
  /editor/{username}/changelog:
    get:
      parameters:
      - name: "username"
        in: "path"
        required: true
        type: "string"
        formatString: "\\\"{}\\\""
        example: "\"username_example\".to_string()"
      responses:
        200:
          description: "Found Merged Changes"
          schema:
            $ref: "#/definitions/changelogentries"
          x-responseId: "FoundMergedChanges"
          x-uppercaseResponseId: "FOUND_MERGED_CHANGES"
          uppercase_operation_id: "EDITOR_USERNAME_CHANGELOG_GET"
          uppercase_data_type: "CHANGELOGENTRIES"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "EDITOR_USERNAME_CHANGELOG_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "EDITOR_USERNAME_CHANGELOG_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "editor_username_changelog_get"
      uppercase_operation_id: "EDITOR_USERNAME_CHANGELOG_GET"
      path: "/editor/:username/changelog"
      HttpMethod: "Get"
      httpmethod: "get"
  /editgroup:
    post:
      parameters:
      - in: "body"
        name: "body"
        required: true
        schema:
          $ref: "#/definitions/editgroup"
        uppercase_data_type: "EDITGROUP"
        refName: "editgroup"
        formatString: "{:?}"
        example: "???"
        model_key: "changelogentries_inner"
        uppercase_operation_id: "EDITGROUP_POST"
        consumesJson: true
      responses:
        201:
          description: "Successfully Created"
          schema:
            $ref: "#/definitions/editgroup"
          x-responseId: "SuccessfullyCreated"
          x-uppercaseResponseId: "SUCCESSFULLY_CREATED"
          uppercase_operation_id: "EDITGROUP_POST"
          uppercase_data_type: "EDITGROUP"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "EDITGROUP_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "EDITGROUP_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "editgroup_post"
      uppercase_operation_id: "EDITGROUP_POST"
      path: "/editgroup"
      HttpMethod: "Post"
      httpmethod: "post"
      noClientExample: true
  /editgroup/{id}:
    get:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "integer"
        format: "int64"
        formatString: "{}"
        example: "789"
      responses:
        200:
          description: "Found Entity"
          schema:
            $ref: "#/definitions/editgroup"
          x-responseId: "FoundEntity"
          x-uppercaseResponseId: "FOUND_ENTITY"
          uppercase_operation_id: "EDITGROUP_ID_GET"
          uppercase_data_type: "EDITGROUP"
          producesJson: true
        400:
          description: "Bad Request"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "BadRequest"
          x-uppercaseResponseId: "BAD_REQUEST"
          uppercase_operation_id: "EDITGROUP_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "EDITGROUP_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "EDITGROUP_ID_GET"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "editgroup_id_get"
      uppercase_operation_id: "EDITGROUP_ID_GET"
      path: "/editgroup/:id"
      HttpMethod: "Get"
      httpmethod: "get"
  /editgroup/{id}/accept:
    post:
      parameters:
      - name: "id"
        in: "path"
        required: true
        type: "integer"
        format: "int64"
        formatString: "{}"
        example: "789"
      responses:
        200:
          description: "Merged Successfully"
          schema:
            $ref: "#/definitions/success"
          x-responseId: "MergedSuccessfully"
          x-uppercaseResponseId: "MERGED_SUCCESSFULLY"
          uppercase_operation_id: "EDITGROUP_ID_ACCEPT_POST"
          uppercase_data_type: "SUCCESS"
          producesJson: true
        400:
          description: "Unmergable"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "Unmergable"
          x-uppercaseResponseId: "UNMERGABLE"
          uppercase_operation_id: "EDITGROUP_ID_ACCEPT_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        404:
          description: "Not Found"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "NotFound"
          x-uppercaseResponseId: "NOT_FOUND"
          uppercase_operation_id: "EDITGROUP_ID_ACCEPT_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
        default:
          description: "Generic Error"
          schema:
            $ref: "#/definitions/error_response"
          x-responseId: "GenericError"
          x-uppercaseResponseId: "GENERIC_ERROR"
          uppercase_operation_id: "EDITGROUP_ID_ACCEPT_POST"
          uppercase_data_type: "ERRORRESPONSE"
          producesJson: true
      operation_id: "editgroup_id_accept_post"
      uppercase_operation_id: "EDITGROUP_ID_ACCEPT_POST"
      path: "/editgroup/:id/accept"
      HttpMethod: "Post"
      httpmethod: "post"
definitions:
  error_response:
    type: "object"
    required:
    - "message"
    properties:
      message:
        type: "string"
        example: "A really confusing, totally unexpected thing happened"
    upperCaseName: "ERROR_RESPONSE"
  success:
    type: "object"
    required:
    - "message"
    properties:
      message:
        type: "string"
        example: "The computers did the thing successfully!"
    example:
      message: "The computers did the thing successfully!"
    upperCaseName: "SUCCESS"
  creator_entity:
    type: "object"
    required:
    - "full_name"
    properties:
      orcid:
        type: "string"
        example: "0000-0002-1825-0097"
      full_name:
        type: "string"
        example: "Grace Hopper"
      extra:
        type: "object"
      editgroup_id:
        type: "integer"
        format: "int64"
        example: 16
      redirect:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000002"
      revision:
        type: "integer"
        format: "int64"
        example: 42
      ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      state:
        type: "string"
        enum:
        - "wip"
        - "active"
        - "redirect"
        - "deleted"
    example:
      redirect: "f1f046a3-45c9-4b99-adce-000000000002"
      full_name: "Grace Hopper"
      ident: "f1f046a3-45c9-4b99-adce-000000000001"
      extra: "{}"
      editgroup_id: 16
      orcid: "0000-0002-1825-0097"
      state: "wip"
      revision: 42
    upperCaseName: "CREATOR_ENTITY"
  container_entity:
    type: "object"
    required:
    - "name"
    properties:
      coden:
        type: "string"
      abbrev:
        type: "string"
      issnl:
        type: "string"
        example: "1234-5678"
      publisher:
        type: "string"
        example: "Society of Curious Students"
      name:
        type: "string"
        example: "Journal of Important Results"
      state:
        type: "string"
        enum:
        - "wip"
        - "active"
        - "redirect"
        - "deleted"
      ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      revision:
        type: "integer"
        format: "int64"
        example: 42
      redirect:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000002"
      editgroup_id:
        type: "integer"
        format: "int64"
        example: 16
      extra:
        type: "object"
    example:
      redirect: "f1f046a3-45c9-4b99-adce-000000000002"
      coden: "coden"
      ident: "f1f046a3-45c9-4b99-adce-000000000001"
      extra: "{}"
      name: "Journal of Important Results"
      publisher: "Society of Curious Students"
      editgroup_id: 16
      issnl: "1234-5678"
      abbrev: "abbrev"
      state: "wip"
      revision: 42
    upperCaseName: "CONTAINER_ENTITY"
  file_entity:
    type: "object"
    properties:
      releases:
        type: "array"
        items:
          type: "string"
      url:
        type: "string"
        format: "url"
        example: "https://example.edu/~frau/prcding.pdf"
      md5:
        type: "string"
        example: "d41efcc592d1e40ac13905377399eb9b"
      sha1:
        type: "string"
        example: "f013d66c7f6817d08b7eb2a93e6d0440c1f3e7f8"
      size:
        type: "integer"
        format: "int64"
        example: 1048576
      extra:
        type: "object"
      editgroup_id:
        type: "integer"
        format: "int64"
        example: 16
      redirect:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000002"
      revision:
        type: "integer"
        format: "int64"
        example: 42
      ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      state:
        type: "string"
        enum:
        - "wip"
        - "active"
        - "redirect"
        - "deleted"
    example:
      sha1: "f013d66c7f6817d08b7eb2a93e6d0440c1f3e7f8"
      redirect: "f1f046a3-45c9-4b99-adce-000000000002"
      size: 1048576
      ident: "f1f046a3-45c9-4b99-adce-000000000001"
      extra: "{}"
      editgroup_id: 16
      state: "wip"
      url: "https://example.edu/~frau/prcding.pdf"
      releases:
      - "releases"
      - "releases"
      md5: "d41efcc592d1e40ac13905377399eb9b"
      revision: 42
    upperCaseName: "FILE_ENTITY"
  release_entity:
    type: "object"
    required:
    - "title"
    - "work_id"
    properties:
      refs:
        type: "array"
        items:
          $ref: "#/definitions/release_ref"
      contribs:
        type: "array"
        items:
          $ref: "#/definitions/release_contrib"
      publisher:
        type: "string"
      issue:
        type: "string"
        example: "12"
      pages:
        type: "string"
      volume:
        type: "string"
      isbn13:
        type: "string"
      doi:
        type: "string"
        example: "10.1234/abcde.789"
      date:
        type: "string"
        format: "date"
      release_type:
        type: "string"
        example: "preprint"
      container_id:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      work_id:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      title:
        type: "string"
      state:
        type: "string"
        enum:
        - "wip"
        - "active"
        - "redirect"
        - "deleted"
      ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      revision:
        type: "integer"
        format: "int64"
        example: 42
      redirect:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000002"
      editgroup_id:
        type: "integer"
        format: "int64"
        example: 16
      extra:
        type: "object"
    example:
      date: "2000-01-23"
      redirect: "f1f046a3-45c9-4b99-adce-000000000002"
      work_id: "f1f046a3-45c9-4b99-adce-000000000001"
      issue: "12"
      ident: "f1f046a3-45c9-4b99-adce-000000000001"
      release_type: "preprint"
      title: "title"
      contribs:
      - role: "role"
        creator_stub: "creator_stub"
        creator_id: "creator_id"
        index: 6
      - role: "role"
        creator_stub: "creator_stub"
        creator_id: "creator_id"
        index: 6
      revision: 42
      volume: "volume"
      pages: "pages"
      refs:
      - target_release_id: "target_release_id"
        stub: "stub"
        index: 0
      - target_release_id: "target_release_id"
        stub: "stub"
        index: 0
      isbn13: "isbn13"
      extra: "{}"
      publisher: "publisher"
      editgroup_id: 16
      state: "wip"
      container_id: "f1f046a3-45c9-4b99-adce-000000000001"
      doi: "10.1234/abcde.789"
    upperCaseName: "RELEASE_ENTITY"
  work_entity:
    type: "object"
    properties:
      work_type:
        type: "string"
      extra:
        type: "object"
      editgroup_id:
        type: "integer"
        format: "int64"
        example: 16
      redirect:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000002"
      revision:
        type: "integer"
        format: "int64"
        example: 42
      ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      state:
        type: "string"
        enum:
        - "wip"
        - "active"
        - "redirect"
        - "deleted"
    example:
      redirect: "f1f046a3-45c9-4b99-adce-000000000002"
      ident: "f1f046a3-45c9-4b99-adce-000000000001"
      extra: "{}"
      work_type: "work_type"
      editgroup_id: 16
      state: "wip"
      revision: 42
    upperCaseName: "WORK_ENTITY"
  entity_edit:
    type: "object"
    required:
    - "edit_id"
    - "editgroup_id"
    - "ident"
    properties:
      extra:
        type: "object"
      editgroup_id:
        type: "integer"
        format: "int64"
        example: 16
      redirect_ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000002"
      revision:
        type: "integer"
        format: "int64"
        example: 42
      ident:
        type: "string"
        example: "f1f046a3-45c9-4b99-adce-000000000001"
      edit_id:
        type: "integer"
        format: "int64"
        example: 847
    example:
      ident: "f1f046a3-45c9-4b99-adce-000000000001"
      extra: "{}"
      edit_id: 847
      redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
      editgroup_id: 16
      revision: 42
    upperCaseName: "ENTITY_EDIT"
  editor:
    type: "object"
    required:
    - "username"
    properties:
      username:
        type: "string"
        example: "zerocool93"
    example:
      username: "zerocool93"
    upperCaseName: "EDITOR"
  editgroup:
    type: "object"
    required:
    - "editor_id"
    properties:
      id:
        type: "integer"
        format: "int64"
      editor_id:
        type: "integer"
        format: "int64"
      description:
        type: "string"
      extra:
        type: "object"
      edits:
        $ref: "#/definitions/editgroup_edits"
    example:
      extra: "{}"
      edits:
        works:
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        creators:
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        files:
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        containers:
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        releases:
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
        - ident: "f1f046a3-45c9-4b99-adce-000000000001"
          extra: "{}"
          edit_id: 847
          redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
          editgroup_id: 16
          revision: 42
      description: "description"
      editor_id: 6
      id: 0
    upperCaseName: "EDITGROUP"
  changelogentries:
    type: "array"
    items:
      $ref: "#/definitions/changelogentries_inner"
    upperCaseName: "CHANGELOGENTRIES"
  release_ref:
    type: "object"
    properties:
      index:
        type: "integer"
        format: "int64"
      target_release_id:
        type: "string"
      stub:
        type: "string"
    example:
      target_release_id: "target_release_id"
      stub: "stub"
      index: 0
    upperCaseName: "RELEASE_REF"
  release_contrib:
    type: "object"
    properties:
      index:
        type: "integer"
        format: "int64"
      creator_id:
        type: "string"
      creator_stub:
        type: "string"
      role:
        type: "string"
    example:
      role: "role"
      creator_stub: "creator_stub"
      creator_id: "creator_id"
      index: 6
    upperCaseName: "RELEASE_CONTRIB"
  editgroup_edits:
    properties:
      containers:
        type: "array"
        items:
          $ref: "#/definitions/entity_edit"
      creators:
        type: "array"
        items:
          $ref: "#/definitions/entity_edit"
      files:
        type: "array"
        items:
          $ref: "#/definitions/entity_edit"
      releases:
        type: "array"
        items:
          $ref: "#/definitions/entity_edit"
      works:
        type: "array"
        items:
          $ref: "#/definitions/entity_edit"
    example:
      works:
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      creators:
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      files:
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      containers:
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      releases:
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
      - ident: "f1f046a3-45c9-4b99-adce-000000000001"
        extra: "{}"
        edit_id: 847
        redirect_ident: "f1f046a3-45c9-4b99-adce-000000000002"
        editgroup_id: 16
        revision: 42
    upperCaseName: "EDITGROUP_EDITS"
  changelogentries_inner:
    required:
    - "editgroup_id"
    - "index"
    - "timestamp"
    properties:
      index:
        type: "integer"
        format: "int64"
      editgroup_id:
        type: "integer"
        format: "int64"
      timestamp:
        type: "string"
        format: "date-time"
    upperCaseName: "CHANGELOGENTRIES_INNER"
x-entity-props:
  state:
    type: "string"
    enum:
    - "wip"
    - "active"
    - "redirect"
    - "deleted"
  ident:
    type: "string"
    example: "f1f046a3-45c9-4b99-adce-000000000001"
  revision:
    type: "integer"
    example: 42
    format: "int64"
  redirect:
    type: "string"
    example: "f1f046a3-45c9-4b99-adce-000000000002"
  editgroup_id:
    type: "integer"
    example: 16
    format: "int64"
  extra:
    type: "object"
    additionalProperties: {}
x-entity-edit-props:
  edit_id:
    type: "integer"
    example: 847
    format: "int64"
  ident:
    type: "string"
    example: "f1f046a3-45c9-4b99-adce-000000000001"
  revision:
    type: "integer"
    example: 42
    format: "int64"
  redirect_ident:
    type: "string"
    example: "f1f046a3-45c9-4b99-adce-000000000002"
  editgroup_id:
    type: "integer"
    example: 16
    format: "int64"
  extra:
    type: "object"
    additionalProperties: {}
x-entity-responses:
  400:
    description: "Bad Request"
    schema:
      $ref: "#/definitions/error_response"
  404:
    description: "Not Found"
    schema:
      $ref: "#/definitions/error_response"
  default:
    description: "Generic Error"
    schema:
      $ref: "#/definitions/error_response"