openapi: 3.1.0
info:
  title: dsp-ingest
  version: v32.2.0
paths:
  /info:
    get:
      tags:
      - monitoring
      operationId: getInfo
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfoEndpointResponse'
              example:
                name: dsp-ingest
                version: v32.2.0
                scalaVersion: 3.3.6
                sbtVersion: 1.11.6
                buildTime: 2025-09-15 15:15:00.851+0000
                gitCommit: 6ea0acf5923940e2f16b14ccbe61a4eb63e008ff
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
  /health:
    get:
      tags:
      - monitoring
      operationId: getHealth
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AggregatedHealth'
              example:
                status: UP
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
  /metrics:
    get:
      tags:
      - monitoring
      operationId: getMetrics
      responses:
        '200':
          description: ''
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
  /projects:
    get:
      tags:
      - projects
      description: 'Authorization: admin scope required.'
      operationId: getProjects
      responses:
        '200':
          description: ''
          headers:
            Content-Range:
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProjectResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}:
    get:
      tags:
      - projects
      description: 'Authorization: read:project:1234 scope required.'
      operationId: getProjectsShortcode
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/checksumreport:
    get:
      tags:
      - projects
      description: 'Authorization: read:project:1234 scope required.'
      operationId: getProjectsShortcodeChecksumreport
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetCheckResultResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/erase:
    delete:
      tags:
      - projects
      description: |-
        !ATTENTION! Erase a project with the given shortcode.
        This will permanently and irrecoverably remove the project and all of its assets.
        Authorization: admin scope required.
      operationId: deleteProjectsShortcodeErase
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/assets/{assetId}:
    get:
      tags:
      - assets
      description: 'Authorization: read:project:1234 scope required.'
      operationId: getProjectsShortcodeAssetsAssetid
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      - name: assetId
        in: path
        description: The id of the asset
        required: true
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_]{4,}$
        example: 5RMOnH7RmAY-qKzgr431bg7
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInfoResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/assets/{assetId}/original:
    get:
      tags:
      - assets
      description: |-
        Offers the original file for download, provided the API permisisons allow.
        Authorization: JWT bearer token.
      operationId: getProjectsShortcodeAssetsAssetidOriginal
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      - name: assetId
        in: path
        description: The id of the asset
        required: true
        schema:
          type: string
          pattern: ^[a-zA-Z0-9-_]{4,}$
        example: 5RMOnH7RmAY-qKzgr431bg7
      responses:
        '200':
          description: ''
          headers:
            Content-Disposition:
              required: true
              schema:
                type: string
            Content-Type:
              required: true
              schema:
                type: string
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - {}
      - httpAuth: []
  /projects/{shortcode}/assets/ingest/{filename}:
    post:
      tags:
      - assets
      operationId: postProjectsShortcodeAssetsIngestFilename
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      - name: filename
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssetInfoResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/bulk-ingest:
    post:
      tags:
      - bulk-ingest
      description: 'Triggers an ingest on the project with the given shortcode. The
        files are expected to be in the `tmp/<project_shortcode>` directory. Will
        return 409 Conflict if a bulk-ingest is currently running for the project.
        Authorization: write:project:1234 scope required.'
      operationId: postProjectsShortcodeBulk-ingest
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
              example:
                id: '0001'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/bulk-ingest/finalize:
    post:
      tags:
      - bulk-ingest
      description: 'Finalizes the bulk ingest. This will remove the files from the
        `tmp/<project_shortcode>` directory and the directory itself. This will remove
        also the mapping.csv file. Will return 409 Conflict if a bulk-ingest is currently
        running for the project. Authorization: write:project:1234 scope required.'
      operationId: postProjectsShortcodeBulk-ingestFinalize
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectResponse'
              example:
                id: '0001'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/bulk-ingest/mapping.csv:
    get:
      tags:
      - bulk-ingest
      description: 'Get the current result of the bulk ingest. The result is a csv
        with the following structure: `original,derivative`. Will return 409 Conflict
        if a bulk-ingest is currently running for the project. Authorization: write:project:1234
        scope required.'
      operationId: getProjectsShortcodeBulk-ingestMapping.csv
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '200':
          description: ''
          headers:
            Content-Type:
              required: true
              schema:
                type: string
            Content-Disposition:
              required: true
              schema:
                type: string
          content:
            text/csv:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/export:
    post:
      tags:
      - import/export
      description: 'Authorization: admin scope required.'
      operationId: postProjectsShortcodeExport
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      responses:
        '200':
          description: ''
          headers:
            Content-Disposition:
              required: true
              schema:
                type: string
            Content-Type:
              required: true
              schema:
                type: string
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/import:
    get:
      tags:
      - import/export
      description: 'Authorization: admin scope required.'
      operationId: getProjectsShortcodeImport
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      - name: Content-Type
        in: header
        required: true
        schema:
          type: string
        example: application/zip
      requestBody:
        content:
          application/zip:
            schema:
              type: string
              format: binary
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /projects/{shortcode}/bulk-ingest/ingest/{file}:
    post:
      tags:
      - bulk-ingest
      description: 'Uploads a file for consumption with the bulk-ingest route. Will
        return 409 Conflict if a bulk-ingest is currently running for the project.
        Authorization: write:project:1234 scope required.'
      operationId: postProjectsShortcodeBulk-ingestIngestFile
      parameters:
      - name: shortcode
        in: path
        description: The shortcode of the project must be an exactly 4 characters
          long hexadecimal string.
        required: true
        schema:
          type: string
          pattern: ^\p{XDigit}{4,4}$
        example: '0001'
      - name: file
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /maintenance/{name}:
    post:
      tags:
      - maintenance
      description: 'Authorization: admin scope required.'
      operationId: postMaintenanceName
      parameters:
      - name: name
        in: path
        description: The name of the action to be performed
        required: true
        schema:
          $ref: '#/components/schemas/ActionName'
        example: UpdateAssetMetadata
      - name: restrictToProjects
        in: query
        description: Restrict the action to a list of projects, if no project is given
          apply the action to all projects.
        required: false
        schema:
          type: array
          items:
            type: string
      responses:
        '202':
          description: ''
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /maintenance/needs-top-left-correction:
    get:
      tags:
      - maintenance
      description: 'Authorization: admin scope required.'
      operationId: getMaintenanceNeeds-top-left-correction
      responses:
        '202':
          description: ''
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /maintenance/was-top-left-correction-applied:
    get:
      tags:
      - maintenance
      description: 'Authorization: admin scope required.'
      operationId: getMaintenanceWas-top-left-correction-applied
      responses:
        '202':
          description: ''
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
  /report/asset-overview:
    post:
      tags:
      - maintenance
      operationId: postReportAsset-overview
      responses:
        '202':
          description: ''
          content:
            text/plain:
              schema:
                type: string
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest'
        '401':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized'
        '403':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
        '409':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conflict'
        '500':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
        '503':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Unhealthy'
      security:
      - httpAuth: []
components:
  schemas:
    ActionName:
      title: ActionName
      type: string
      enum:
      - ApplyTopLeftCorrection
      - ImportProjectsToDb
      - UpdateAssetMetadata
    AggregatedHealth:
      title: AggregatedHealth
      type: object
      required:
      - status
      properties:
        status:
          $ref: '#/components/schemas/Status'
        components:
          $ref: '#/components/schemas/Map_Health'
    Argument:
      title: Argument
      type: object
      required:
      - argument
      - reason
      properties:
        argument:
          type: string
        reason:
          type: string
    AssetCheckResultEntry:
      title: AssetCheckResultEntry
      type: object
      required:
      - assetId
      - originalFilename
      properties:
        assetId:
          type: string
        originalFilename:
          type: string
        results:
          type: array
          items:
            $ref: '#/components/schemas/SingleFileCheckResultResponse'
    AssetCheckResultResponse:
      title: AssetCheckResultResponse
      type: object
      required:
      - summary
      properties:
        summary:
          $ref: '#/components/schemas/AssetCheckResultSummary'
        results:
          type: array
          items:
            $ref: '#/components/schemas/AssetCheckResultEntry'
    AssetCheckResultSummary:
      title: AssetCheckResultSummary
      type: object
      required:
      - numberOfAssets
      - numberOfFiles
      - numberOfChecksumMatches
      properties:
        numberOfAssets:
          type: integer
          format: int32
        numberOfFiles:
          type: integer
          format: int32
        numberOfChecksumMatches:
          type: integer
          format: int32
    AssetInfoResponse:
      title: AssetInfoResponse
      type: object
      required:
      - internalFilename
      - originalInternalFilename
      - originalFilename
      - checksumOriginal
      - checksumDerivative
      properties:
        internalFilename:
          type: string
        originalInternalFilename:
          type: string
        originalFilename:
          type: string
        checksumOriginal:
          type: string
        checksumDerivative:
          type: string
        width:
          type: integer
          format: int32
        height:
          type: integer
          format: int32
        duration:
          type: number
          format: double
        fps:
          type: number
          format: double
        internalMimeType:
          type: string
        originalMimeType:
          type: string
    BadRequest:
      title: BadRequest
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Argument'
    Conflict:
      title: Conflict
      type: object
      required:
      - reason
      properties:
        reason:
          type: string
    DOWN:
      title: DOWN
      type: object
    Forbidden:
      title: Forbidden
      type: object
      required:
      - reason
      properties:
        reason:
          type: string
    Health:
      title: Health
      type: object
      required:
      - status
      properties:
        status:
          $ref: '#/components/schemas/Status'
    InfoEndpointResponse:
      title: InfoEndpointResponse
      type: object
      required:
      - name
      - version
      - scalaVersion
      - sbtVersion
      - buildTime
      - gitCommit
      properties:
        name:
          type: string
        version:
          type: string
        scalaVersion:
          type: string
        sbtVersion:
          type: string
        buildTime:
          type: string
        gitCommit:
          type: string
    InternalServerError:
      title: InternalServerError
      type: object
      required:
      - errorMessage
      properties:
        errorMessage:
          type: string
    Map_Health:
      title: Map_Health
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Health'
    NotFound:
      title: NotFound
      type: object
      required:
      - id
      - type
      properties:
        id:
          type: string
        type:
          type: string
    ProjectResponse:
      title: ProjectResponse
      type: object
      required:
      - id
      properties:
        id:
          type: string
    SingleFileCheckResultResponse:
      title: SingleFileCheckResultResponse
      type: object
      required:
      - filename
      - checksumMatches
      properties:
        filename:
          type: string
        checksumMatches:
          type: boolean
    Status:
      title: Status
      oneOf:
      - $ref: '#/components/schemas/DOWN'
      - $ref: '#/components/schemas/UP'
    UP:
      title: UP
      type: object
    Unauthorized:
      title: Unauthorized
      type: object
      required:
      - reason
      properties:
        reason:
          type: string
    Unhealthy:
      title: Unhealthy
      type: object
      required:
      - status
      properties:
        status:
          $ref: '#/components/schemas/Status'
        components:
          $ref: '#/components/schemas/Map_Health'
    UploadResponse:
      title: UploadResponse
      type: object
      required:
      - status
      properties:
        status:
          type: string
  securitySchemes:
    httpAuth:
      type: http
      scheme: bearer
