Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Open api
filternone
supportedSubmitMethodsnone
showUrlfalse
openapi: 3.0.2
servers: []
info:
  title: Globalese
  version: 3
  description: Globalese API v3
tags:
  - name: Corpora
  - name: Engines
  - name: Engine instances
  - name: Groups
  - name: Languages
  - name: Projects
  - name: Project files
  - name: Segment translation dispatchers
  - name: Translation jobs
paths:
  /corpora:
    get:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: List corpora
      description: Returns a collection of corpora.
      parameters:
        - $ref: '#/components/parameters/stringIds'
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/sourceLanguage'
        - $ref: '#/components/parameters/targetLanguage'
        - $ref: '#/components/parameters/groupIds'
        - $ref: '#/components/parameters/engineId'
        - $ref: '#/components/parameters/metadataDomain'
        - $ref: '#/components/parameters/metadataSubject'
        - $ref: '#/components/parameters/metadataClient'
        - $ref: '#/components/parameters/metadataProject'
        - $ref: '#/components/parameters/metadataDescription'
        - $ref: '#/components/parameters/corpusCatServerId'
        - name: name
          in: query
          description: Full or partial corpus name for filtering.
          schema:
            type: string
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - name:asc
              - name:desc
              - counts.segment_count:asc
              - counts.segment_count:desc
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorpusCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
    post:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Upload a new corpus
      description: |
        The `source_language` and `target_language` are required for these formats:
        * `csv-comma`
        * `csv-memoq`
        * `csv-semicolon`
        * `tsv`

        Only a single file may be uploaded in one request. Maximum file size: 600 MB.

        A file can be uploaded as a zip archive.
        The zip archive may only contain one file, and the file format must be provided in the `format` field.

        The `Content-Disposition` header must contain the `filename` directive.
        This is taken care of by most libraries in general.

        E.g. `Content-Disposition: form-data; name="Example TM"; filename="example.xliff"`

        Required permissions: `MANAGE_CORPORA` in all the groups the corpus is uploaded to, or `SYSTEM_ADMINISTRATOR`
      requestBody:
        $ref: '#/components/requestBodies/CreateCorpus'
      responses:
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Corpus'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /corpora/{corpusId}:
    parameters:
      - $ref: '#/components/parameters/corpusIdInPath'
    get:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Show the details of a corpus
      description: |
        Returns a single corpus.

        Required permissions: `MANAGE_CORPORA` in the group the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Corpus'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
    patch:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Update a corpus
      description: |
        Required permissions: `MANAGE_CORPORA` in all the groups the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      requestBody:
        $ref: '#/components/requestBodies/UpdateCorpus'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Corpus'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
    delete:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Delete a corpus
      description: |
        Delete a corpus.

        Required permissions: `MANAGE_CORPORA` in all groups the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      responses:
        204:
          $ref: '#/components/responses/204NoContent'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /corpora/{corpusId}/content:
    parameters:
      - $ref: '#/components/parameters/corpusIdInPath'
    get:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Corpus content
      description: |
        Returns segments of a corpus.

        Required permissions: `MANAGE_CORPORA` in the group the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      parameters:
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorpusContent'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /corpora/{corpusId}/events:
    parameters:
      - $ref: '#/components/parameters/corpusIdInPath'
    get:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Show the event log of a corpus
      description: |
        Returns a list of events from the corpus log.

        Required permissions: `MANAGE_CORPORA` in the group the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      parameters:
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - timestamp:asc
              - timestamp:desc
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorpusEventCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /corpora/{corpusId}/versions:
    parameters:
      - $ref: '#/components/parameters/corpusIdInPath'
    get:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: List all versions of a corpus
      description: |
        Returns details about each version of a corpus:
        * corpus counts
        * engine IDs that used the current corpus for training
        * engine IDs that used the current corpus for tuning

        Required permissions: `MANAGE_CORPORA` in the group the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      parameters:
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - counts.segment_count:asc
              - counts.segment_count:desc
              - version:asc
              - version:desc
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorpusVersionCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
    post:
      tags:
        - Corpora
      security:
        - bearer: [ ]
      summary: Update corpus content
      description: |
        Update the contents of a corpus, creating a new version thereof.

        The format of the uploaded content must be the same as the format of the original content.

        The language codes of the uploaded content must be the same as the original ones.

        Required permissions: `MANAGE_CORPORA` in the group the corpus belongs to, or `SYSTEM_ADMINISTRATOR`
      requestBody:
        $ref: '#/components/requestBodies/UpdateCorpusContent'
      responses:
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorpusVersion'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /engines:
    get:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: List engines
      description: |
        Returns a collection of engines.

        A translation API key can also be used for authentication.
      parameters:
        - $ref: '#/components/parameters/numericalIds'
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
        - $ref: '#/components/parameters/sourceLanguage'
        - $ref: '#/components/parameters/targetLanguage'
        - $ref: '#/components/parameters/engineStatuses'
        - $ref: '#/components/parameters/groupIds'
        - name: name
          in: query
          description: Full or partial engine name for filtering.
          schema:
            type: string
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - name:asc
              - name:desc
              - status:asc
              - status:desc
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EngineCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        500:
          $ref: '#/components/responses/500InternalServerError'
    post:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: Create a new engine
      description: |
        Restrictions:

        * Using stock corpora and stock engines are mutually exclusive options.
        * Stock+ engines (i.e. engines based on a stock engine) can only have core corpora.

        Required permissions: `MANAGE_ENGINES` in the group the engine belongs to, or `SYSTEM_ADMINISTRATOR`
      requestBody:
        $ref: '#/components/requestBodies/CreateEngine'
      responses:
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Engine'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        402:
          description: |
            Maximum number of allowed engines reached.
            Only applies to legacy subscriptions.
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
        502:
          $ref: '#/components/responses/502BadGateway'
  /engines/{engineId}:
    parameters:
      - $ref: '#/components/parameters/engineIdInPath'
    get:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: Show the details of an engine
      description: |
        Returns a single engine.

        Required permissions: `MANAGE_ENGINES`, `MANAGE_PROJECTS` or `TRANSLATE` in the group the engine belongs to, or `SYSTEM_ADMINISTRATOR`

        A translation API key can also be used for authentication.
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Engine'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
    patch:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: Update an engine
      description: |
        Required permissions: `MANAGE_ENGINES` in the group the engine belongs to, or `SYSTEM_ADMINISTRATOR`

        The `published` property can only be changed if the engine has been trained or tuned before.
      requestBody:
        $ref: '#/components/requestBodies/UpdateEngine'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Engine'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
    delete:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: Delete an engine
      description: |
        Delete an engine.

        Required permissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
      responses:
        204:
          $ref: '#/components/responses/204NoContent'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /engines/{engineId}/events:
    parameters:
      - $ref: '#/components/parameters/engineIdInPath'
    get:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: Show the event log of an engine
      description: |
        Returns a list of events from the engine log.

        Required permissions: `MANAGE_ENGINES` in the group the engine belongs to, or `SYSTEM_ADMINISTRATOR`
      parameters:
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - timestamp:asc
              - timestamp:desc
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EngineEventCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /engines/{engineId}/resources:
    parameters:
      - $ref: '#/components/parameters/engineIdInPath'
    get:
      tags:
        - Engines
      security:
        - bearer: [ ]
      summary: Show the resources of an engine
      description: |
        Returns a single engine's resources.

        Required permissions: `MANAGE_ENGINES` or `MANAGE_PROJECTS` in the group the engine belongs to, or `SYSTEM_ADMINISTRATOR`
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EngineResources'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /engine-instances:
    get:
      tags:
        - Engine instances
      security:
        - bearer: [ ]
      summary: List engine instances
      description: |
        Returns a collection of engine instances (being) deployed.

        Required permissions: `MANAGE_ENGINES|TRANSLATE|SYSTEM_ADMINISTRATOR`

        A translation API key can also be used for authentication.
      parameters:
        - $ref: '#/components/parameters/numericalIds'
        - $ref: '#/components/parameters/engineIds'
        - $ref: '#/components/parameters/groupIds'
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EngineInstanceCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
    post:
      tags:
        - Engine instances
      security:
        - bearer: [ ]
      summary: Create a new engine instance
      description: |
        Starts deploying an engine in the background.

        Required permissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
      requestBody:
        $ref: '#/components/requestBodies/CreateEngineInstance'
      responses:
        202:
          description: The newly created engine instance entity in the database.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EngineInstance'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /engine-instances/{id}:
    parameters:
      - name: id
        description: Engine instance ID
        in: path
        required: true
        schema:
          type: integer
    get:
      tags:
        - Engine instances
      security:
        - bearer: [ ]
      summary: Show the details of an engine instance
      description: |
        Returns a single engine instance.

        Required permissions: `MANAGE_ENGINES|TRANSLATE|SYSTEM_ADMINISTRATOR`

        A translation API key can also be used for authentication.
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EngineInstance'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
        502:
          $ref: '#/components/responses/502BadGateway'
    delete:
      tags:
        - Engine instances
      security:
        - bearer: [ ]
      summary: Delete an engine instance
      description: |
        Removes a deployed engine instance.

        Required permissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
      responses:
        204:
          $ref: '#/components/responses/204NoContent'
        400:
          $ref: '#/components/responses/400BadRequest'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        404:
          $ref: '#/components/responses/404NotFound'
        500:
          $ref: '#/components/responses/500InternalServerError'
        502:
          $ref: '#/components/responses/502BadGateway'
  /groups:
    get:
      tags:
        - Groups
      security:
        - bearer: [ ]
      summary: List groups
      description: Returns a collection of groups the authenticated user is a member of.
      parameters:
        - $ref: '#/components/parameters/limitMax100'
        - $ref: '#/components/parameters/offset'
        - name: sort
          in: query
          schema:
            type: string
            enum:
              - name:asc
              - name:desc
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /jobs/languagestranslation:
    getpost:
      tags:
        - Translation Languagesjobs
      security:
        - bearer: [ ]
      summary: List languagesCreate a translation job
      description: |
        Required permission: `MANAGE_PROJECTS`  Returns a collection of languages used in Globalese.in the group the file (and project) belongs to, or `SYSTEM_ADMINISTRATOR`

        If the engine Ais translationnot APIpublished, keyit can also be used for authentication.
      parameters: document translation only by users with at least one of the following permissions:
          - $ref: '#/components/parameters/languageUsage'`MANAGE_ENGINES` for the group the engine belongs to
          - $ref: '#/components/parameters/limit'
 `SYSTEM_ADMINISTRATOR`
      requestBody:
       - $ref: '#/components/parametersrequestBodies/offsetCreateTranslationJob'
      responses:
        200201:
          description: OKTranslation job created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LanguageCollectionTranslationJob'
        401400:
          $ref: '#/components/responses/401Unauthorized400BadRequest'
        500401:
          $ref: '#/components/responses/500InternalServerError401Unauthorized'
  /segment-translation-dispatchers:      get402:
      tags    description: License does not allow new translation jobs to -be Segmentcreated
translation dispatchers       security403:
        -  bearer: [ ]$ref: '#/components/responses/403Forbidden'
        summary409:
List segment translation dispatchers       description: |
 File is already being translated
       Required permissions500: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
          $ref: responses:'#/components/responses/500InternalServerError'
        200502:
          description$ref: OK'#/components/responses/502BadGateway'
        504:
 content:         $ref: '#/components/responses/504GatewayTimeout'
  application/jsonlanguages:
    get:
         schematags:
        - Languages
      $refsecurity:
'#/components/schemas/RemoteDispatcherCollection'        - 401bearer: [ ]
      summary: List $ref: '#/components/responses/401Unauthorized'languages
      description: |
 403:       Returns a collection of $ref: '#/components/responses/403Forbidden'
 languages used in Globalese.

        A translation API key can also be used for authentication.
      500parameters:
        -  $ref: '#/components/responsesparameters/500InternalServerErrorlanguageUsage'
        - 502$ref: '#/components/parameters/limit'
        - $ref: '#/components/responsesparameters/502BadGatewayoffset'
components:
  parameters:     corpusCatServerIdresponses:
      name: cat.server.id 200:
     in: query       description: |OK
        The ID of the CAT server the corpus is associated with. content:
            schemaapplication/json:
        type: number     schema:
   example: 10     corpusIdInPath:       name$ref: corpusId'#/components/schemas/LanguageCollection'
      description: Corpus ID401:
      in: path   $ref: '#/components/responses/401Unauthorized'
  required: true     500:
 schema:         type$ref: string'#/components/responses/500InternalServerError'
  /projects:
    post:
example: 5b04a7263fa509.a4444794     engineIdtags:
      name: engine_id - Projects
    in: query       descriptionsecurity:
|        - Enginebearer: ID[ for]
filtering.      summary: Create a new Examples: `1`,project
`2`       schemadescription: |
       $ref: '#/components/schemas/engineId'
    engineIdInPath:
  One of either `engine_id` or `stock_engine_id` is required.

   name: engineId    Required permissions: `MANAGE_PROJECTS` in: querythe group the project belongs to, or required:`SYSTEM_ADMINISTRATOR`
true       schemarequestBody:
        type$ref: integer'#/components/requestBodies/CreateProject'
      responses:
 example:       201:
   5     engineIds:  description: Project created
  name: engine_ids       incontent:
query       description: |    application/json:
    One  or more engine ID(s) for filtering, comma-separated.  schema:
       Examples: `1`, `1,3,5`       schema$ref: '#/components/schemas/Project'
       oneOf 400:
          - type$ref: integer'#/components/responses/400BadRequest'
          - type401:
string     engineStatuses:     $ref:  name: statuses'#/components/responses/401Unauthorized'
        in403:
query       description: |  $ref: '#/components/responses/403Forbidden'
     One or more engine500:
statuses for filtering, comma-separated.          Examples: `trained`, `queued,training`
 $ref: '#/components/responses/500InternalServerError'
  /projects/{projectId}:
    schemaparameters:
      -  type: string$ref: '#/components/parameters/projectIdInPath'
    get:
    enum:  tags:
        - changedProjects
      security:
   - error    - bearer: [ ]
   - queued  summary: Show the details of a project
  - trained   description: |
      - training Returns a single project.

     - tuned  Required permissions: `MANAGE_PROJECTS` in the group the project belongs -to, tuningor `SYSTEM_ADMINISTRATOR`
      responses:
  - untrained     groupIds200:
      name: group_ids   description: OK
  in: query       descriptioncontent:
|          One or moreapplication/json:
group ID(s) for filtering, comma-separated.          Examplesschema:
`1`, `1,3,5`       schema:         oneOf$ref: '#/components/schemas/Project'
        401:
- type: integer        $ref: '#/components/responses/401Unauthorized'
  - type: string    403:
  style: form       explode$ref: false'#/components/responses/403Forbidden'
    languageUsage:    404:
  name: usage       in: query$ref: '#/components/responses/404NotFound'
        description500:
|         Filter for languages used in Globalese.

$ref: '#/components/responses/500InternalServerError'
    patch:
      tags:
Optionally, the `:source` or `:target` modifier may be appended- toProjects
the parameter value to filter for languagessecurity:
used on the source or target language side only.- bearer: [ ]
      `usage=enginessummary:source` will returnUpdate a listproject
of languages used as engine source languages.description: |
        `usage=engines` will return a list of languages used as engine languages, either source or target.Required permissions: `MANAGE_PROJECTS` in the group the project belongs to, or `SYSTEM_ADMINISTRATOR`
      schemarequestBody:
        type$ref: string'#/components/requestBodies/UpdateProject'
      responses:
 enum:       200:
    - engines     limitdescription: Project  updated
   name: limit       incontent:
query       description: |    application/json:
    Limit for results. *May* be used together with `offset`.  schema:
       Examples: `25`, `50`       schema:$ref: '#/components/schemas/Project'
        type400:
integer     limitMax100:     $ref:  name: limit'#/components/responses/400BadRequest'
        in401:
query       description: |  $ref: '#/components/responses/401Unauthorized'
     Limit for results. It403:
cannot be greater than 100. *May* be used together with `offset`.
$ref: '#/components/responses/403Forbidden'
        Examples404:
`25`, `50`          If not provided, it will automatically be set to 100.$ref: '#/components/responses/404NotFound'
        500:
      schema:         type: integer$ref: '#/components/responses/500InternalServerError'
    metadataClientdelete:
      nametags:
 metadata.client       in:- queryProjects
      descriptionsecurity:
|        - Clientbearer: metadata[ descriptor.]
         Examplessummary: `VeryDelete Importanta Client`project
      schemadescription: |
       type: stringDeletes a project as well metadataDescription:as all the project files contained  name: metadatawithin.description

     in: query  Required permission: `MANAGE_PROJECTS` in the description:group |the project belongs to, or `SYSTEM_ADMINISTRATOR`
   Description metadata descriptor. responses:
        Examples204:
`used for 2018 campaign`       schema$ref: '#/components/responses/204NoContent'
       type 400:
string     metadataDomain:     $ref:  name: metadata.domain'#/components/responses/400BadRequest'
        in401:
query       description: |  $ref: '#/components/responses/401Unauthorized'
       Domain metadata403:
descriptor.          Examples$ref: `legal`'#/components/responses/403Forbidden'
        schema404:
        type  $ref: string'#/components/responses/404NotFound'
    metadataProject:    500:
  name: metadata.project       in: query
 $ref: '#/components/responses/500InternalServerError'
  /projects/{projectId}/files:
    descriptionparameters:
|      -   Project metadata descriptor.$ref: '#/components/parameters/projectIdInPath'
    get:
      Examplestags: `0192
EC Project`       schema:- Project files
      typesecurity:
string     metadataSubject:   - bearer: [ ]
name: metadata.subject     summary: List in:project queryfiles
      description: |
        SubjectReturns metadataa descriptor.collection of project files.

     Examples: `EU treaties` Required permissions: `MANAGE_PROJECTS` in the group schema:the project belongs to, or `SYSTEM_ADMINISTRATOR`
   type: string  parameters:
  numericalIds:      - name$ref: ids
'#/components/parameters/stringIds'
      in: query - $ref: '#/components/parameters/fileStatuses'
   description: |    - $ref: '#/components/parameters/limitMax100'
  One or more ID(s) for filtering, comma-separated. $ref: '#/components/parameters/offset'
       Examples: `3`, `3,4`
- name: sort
     schema:     in: query
  type: string       styleschema:
form       explode: false     offsettype: string
     name: offset       inenum:
 query       description: |     - name:asc
  Offset to start query from. **Must** be used together with `limit`.  - name:desc
      Examples: `50`, `100`       schema:- latest_events.translation_finished.timestamp:asc
         type: integer     sourceLanguage:- latest_events.translation_finished.timestamp:desc
      nameresponses:
source_language        in200:
query       description: |  description: OK
     Source language.    content:
     Examples: `en`, `fr`       schemaapplication/json:
        type: string     stringIdsschema:
       name:  ids       in$ref: query'#/components/schemas/FileCollection'
        description401:
 |         One or more ID(s) for filtering, comma-separated.$ref: '#/components/responses/401Unauthorized'
        403:
     Examples: `5b04a7263fa509.a4444794`, `5b04a7263fa509.a4444794,5b0412363fa5c1.a4354792`   $ref: '#/components/responses/403Forbidden'
  schema:      404:
  type: string       style$ref: form'#/components/responses/404NotFound'
      explode: false 500:
   targetLanguage:       name$ref: target_language'#/components/responses/500InternalServerError'
      inpost:
query       descriptiontags:
|        - TargetProject language.files
      security:
  Examples: `en`, `fr`    - bearer: [ schema:]
      summary: Upload type:new stringproject files
 requestBodies:     CreateCorpusdescription: |
     content:   Only one file can be  multipart/form-data:
 uploaded at the same time.
        schema:A file can be uploaded as a ZIP. The ZIP may contain more $ref: '#/components/schemas/CreateCorpus'
    CreateEngine:
      content:files, but the formats of these files must be the same.

        The  application/json:
          schema:HTTP Content-Disposition header must contain the `filename` directive. Most often it happens automatically.
        E.g. `Content-Disposition: form-data;  $ref: '#/components/schemas/CreateEngine'name="file"; filename="example.xliff"`

      required: true Required permissions: `MANAGE_PROJECTS` in CreateEngineInstance:the groups the project belongs to, or required:`SYSTEM_ADMINISTRATOR`
true       contentrequestBody:
        application/json:$ref: '#/components/requestBodies/CreateFile'
      responses:
    schema:    201:
        type: object description: OK
          requiredcontent:
            application/json:
 - engine_id            schema:
  - dispatcher_id             propertiestype: object
             engine_id:   required:
             $ref: '#/components/schemas/engineId'     - files
                dispatcher_idproperties:
                $ref: '#/components/schemas/dispatcherId'  files:
             UpdateCorpus:       contenttype: array
        application/json:            schemaitems:
                      $ref: '#/components/schemas/UpdateCorpusFile'
    UpdateCorpusContent:    401:
  content:         multipart/form-data:$ref: '#/components/responses/401Unauthorized'
          schema403:
 
          $ref: '#/components/schemasresponses/UpdateCorpusContent403Forbidden'
    UpdateEngine:    404:
  required: true       content$ref: '#/components/responses/404NotFound'
        application/json500:
          schema $ref: '#/components/responses/500InternalServerError'
  /projects/{projectId}/files/{fileId}:
    parameters:
      - $ref: '#/components/schemasparameters/UpdateEngineprojectIdInPath'
  responses:    - 204NoContent$ref: '#/components/parameters/fileIdInPath'
     descriptionget:
No Content     400BadRequesttags:
      description: Bad Request- Project files
      contentsecurity:
        - application/jsonbearer: [ ]
      summary: Show schema:the details of a project file
      description: $ref: '#/components/schemas/Error'|
     401Unauthorized:   Returns a single project description:file.
Unauthorized
      content:  Required permissions: `MANAGE_PROJECTS` in the group the application/json:project belongs to, or `SYSTEM_ADMINISTRATOR`
      schemaresponses:
        200:
    $ref: '#/components/schemas/Error'     403Forbiddendescription: OK
     description: Insufficient permissions   content:
   content:         application/json:
              schema:
                $ref: '#/components/schemas/ErrorFile'
    404NotFound:    401:
  description: Resource not found     422UnprocessableEntity$ref: '#/components/responses/401Unauthorized'
     description: Unprocessable entity 403:
   500InternalServerError:       description$ref: Internal server error while processing the request'#/components/responses/403Forbidden'
        404:
   content:         application/json:$ref: '#/components/responses/404NotFound'
          schema500:

           $ref: '#/components/schemasresponses/Error500InternalServerError'
    502BadGatewaydelete:
      descriptiontags:
 Bad Gateway   securitySchemes:   - Project bearer:files
      typesecurity:
 http       scheme:- bearer: [ ]
    description: API key
  schemassummary: Delete a project file
catToolServerId:       description: CAT|
tool server ID in Globalese    Delete a project type:file.
integer
      example: 10 Required permission: `MANAGE_PROJECTS` in catToolServerType:the group the project belongs to,  type: stringor `SYSTEM_ADMINISTRATOR`
      enumresponses:
        -204:
memoq         - memsource
$ref: '#/components/responses/204NoContent'
       - smartcat400:
        - xtm $ref: '#/components/responses/400BadRequest'
  CollectionMetadata:       type401:
object       required:   $ref: '#/components/responses/401Unauthorized'
    - counts   403:
   properties:         counts$ref: '#/components/responses/403Forbidden'
         type404:
object           required$ref: '#/components/responses/404NotFound'
        500:
  - total       $ref: '#/components/responses/500InternalServerError'
  /projects/{projectId}/translated-files:
 - filtered  parameters:
      -  properties:$ref: '#/components/parameters/projectIdInPath'
      - name: files
   total:     in: query
        descriptionschema:
The total number of resources in the system, irrespective of anytype: filters.string
        description: |
    type: integer     One or more file IDs to include in the downloaded example:zip 100file.

           filteredExamples: `5b04a7263fa509.a4444794`, `5b04a7263fa509.a4444794,5b0412363fa5c1.a4354792`
    get:
      tags:
description: The number of resources in the system matching- theProject filters.files
      security:
       type: integer- bearer: [ ]
      summary: Download translated project files
example: 40     Corpusdescription: |
     type: object  Returns a zip file containing required:all or the specified translated files.
   - id    Untranslated files are not returned, -even actionsif their IDs are specified in the request.

- cat       Required permissions: -`MANAGE_PROJECTS` countsin the group the project belongs to, or `SYSTEM_ADMINISTRATOR`
- engines     responses:
   - format    200:
    - groups     $ref: '#/components/responses/200OctetStream'
  - metadata     400:
   - name      $ref: '#/components/responses/400BadRequest'
 - source_language      401:
  - target_language       $ref:  - version'#/components/responses/401Unauthorized'
        properties:
        id403:
          $ref: '#/components/schemasresponses/corpusId403Forbidden'
        actions404:
          $ref: '#/components/schemasresponses/CorpusActions404NotFound'
        cat500:
          $ref: '#/components/schemasresponses/CorpusCat500InternalServerError'
  /projects/{projectId}/files/{fileId}/translated-file:
     countsparameters:
         - $ref: '#/components/schemasparameters/CorpusCountsprojectIdInPath'
      -  engine_ids:$ref: '#/components/parameters/fileIdInPath'
    get:
      typetags:
array        - Project files
items:      security:
      type: integer - bearer: [ ]
      examplesummary: [Download 2,a 8,translated 14project ]file
        formatdescription: |
        Required $refpermissions: '#/components/schemas/corpusFormat'
        group_ids:
 `MANAGE_PROJECTS` in the group the project belongs to, or `SYSTEM_ADMINISTRATOR`
      responses:
        $ref200: '#/components/schemas/corpusGroupIds'
          metadatadescription: OK
         $ref content: '#/components/schemas/CorpusMetadata'
            name:application/octet-stream:
              $ref: '#/components/schemas/corpusName'schema:
                source_language:type: string
               $ref example: '#/components/schemas/sourceLanguage'>-
        target_language:           $ref: '#/components/schemas/targetLanguage'<?xml version='1.0'?><xliff>[file content]</xliff>
        version401:
          $ref: '#/components/schemasresponses/corpusVersion401Unauthorized'
    CorpusActions:    403:
  type: object       description$ref: An object describing the actions possible against a corpus.
'#/components/responses/403Forbidden'
        404:
     required:     $ref: '#/components/responses/404NotFound'
  - delete     500:
   - update       properties$ref: '#/components/responses/500InternalServerError'
  /segment-translation-dispatchers:
    deleteget:
      tags:
   type: boolean    - Segment translation dispatchers
 update:     security:
     type: boolean  - bearer: [ CorpusCat:]
      typesummary: object List segment translation dispatchers
      nullabledescription: |
 true       Required descriptionpermissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
      responses:
 If      the corpus200:
was created by retrieving a CAT tool server corpus, this objectdescription: containsOK
relevant information.       required:  content:
      - corpus     application/json:
   - server       properties:   schema:
     corpus:           $ref: '#/components/schemas/CorpusCatCorpusRemoteDispatcherCollection'
        server401:
          $ref: '#/components/schemasresponses/CorpusCatServer401Unauthorized'
        CorpusCatCorpus403:
      type: object   $ref: '#/components/responses/403Forbidden'
  required:      500:
  - id       properties$ref: '#/components/responses/500InternalServerError'
       id 502:
          $ref: '#/components/schemasresponses/remoteCorpusId502BadGateway'
components:
  parameters:
   CorpusCatServer corpusCatServerId:
      typename: objectcat.server.id
      requiredin: query
      description: -|
id        The -ID typeof the CAT server the corpus is properties:associated with.
       idschema:
        type: number
$ref: '#/components/schemas/catToolServerId'       example: 10
type:    corpusIdInPath:
      $refname: '#/components/schemas/catToolServerType' corpusId
      CorpusCollectiondescription: Corpus ID
      typein: objectpath
      required: true
      schema:
- data       type: string
- meta       properties:example: 5b04a7263fa509.a4444794
    engineId:
      dataname: engine_id
      in: query
 type: array    description: |
     items:   Engine ID for filtering.

     $ref: '#/components/schemas/Corpus'  Examples: `1`, `2`
    meta:  schema:
        $ref: '#/components/schemas/CollectionMetadataengineId'
    CorpusContentengineIdInPath:
      typename: objectengineId
      requiredin: query
      required: -true
data      schema:
  - meta     type: integer
properties:         dataexample:
          type:5
array    engineIds:
      itemsname: engine_ids
      in: query
      typedescription: object|
        One or more  required:
  engine ID(s) for filtering, comma-separated.

        Examples:  - id`1`, `1,3,5`
      schema:
        -oneOf:
content          - type: integer
properties:          - type: string
  id:  engineStatuses:
      name: statuses
      typein: query
string      description: |
        One example: "1"
    or more engine statuses for filtering, comma-separated.

        Examples:  nullable: true`trained`, `queued,training`
      schema:
        contenttype: string
        enum:
      type: object   - changed
          - error
required:          - queued
       - source  - trained
          - training
   - target      - tuned
         properties: - tuning
          - untrained
    sourcefileIdInPath:
      name: fileId
      description: Project file ID
  type: string   in: path
      required: true
      targetschema:
        type: string
          typeexample: string5b04a7263fa509.a4444794
    fileStatuses:
   meta:   name: statuses
      $refin: '#/components/schemas/CollectionMetadata'query
    CorpusCounts:  description: |
       type: objectOne or more file statuses for  required:filtering, comma-separated.

       - segment_count
 Examples: `new`, `translating,translated`
      - source_word_countschema:
        type: -string
target_word_count        enum:
- source_character_count         - target_character_countempty
      properties:    - new
   segment_count:       - queued
  type: integer       - translated
  example: 145952       - translating
source_word_count:    groupIds:
      typename: integergroup_ids
      in: query
  example: 2819806   description: |
    target_word_count:    One or more group ID(s) for  type: integerfiltering, comma-separated.

          exampleExamples: 3120176
`1`, `1,3,5`
       source_character_countschema:
          typeoneOf:
integer          - exampletype: 24235334integer
        target_character_count:  - type: string
      typestyle: integerform
          exampleexplode: 29194748false
    CorpusEventlanguageUsage:
      allOfname: usage
       - $refin: '#/components/schemas/Event'query
      description: |
- type: object      Filter for languages used in properties:Globalese.

        Optionally, the  resource_id`:source` or `:target` modifier may be appended to the parameter value to filter for languages $ref: '#/components/schemas/corpusId'
      used on the source or target language side only.

    type:    `usage=engines:source` will return a list of languages used as engine source type:languages.
string
        `usage=engines` will return a list of enum:languages used as engine languages, either source or target.
      schema:
 - uploaded      type: string
        enum:
- updated         - engines
    limit:
 - new_version_uploaded    name: CorpusEventCollection:limit
      typein: objectquery
      requireddescription: |
        -Limit datafor results. *May* be used together with `offset`.

- meta       propertiesExamples: `25`, `50`
      dataschema:
          type: arrayinteger
    limitMax100:
     items name: limit
      in: query
      $refdescription: '#/components/schemas/CorpusEvent'|
        meta:Limit for results. It cannot be greater than 100. *May* be $ref: '#/components/schemas/CollectionMetadata'
 used together with `offset`.

 corpusFormat:       typeExamples: string`25`, `50`

    enum:    If not provided, it will -automatically csv-commabe set to 100.
     - csv-memoqschema:
        - csv-semicolontype: integer
    metadataClient:
   - tmx  name: metadata.client
     - tbxin: query
      description: -|
tsv        Client -metadata xliffdescriptor.

       - xliff-memoqExamples: `Very Important Client`
     - xliff-memsourceschema:
        - xliff-sdltype: string
    metadataDescription:
   - xliff-smartcat  name: metadata.description
     - xliff-translate5in: query
      description: -|
xliff-wordbee        Description - xliff-xtmmetadata descriptor.

   corpusGroupIds:     Examples: `used type:for array2018 campaign`
     description schema:
|        type: Cannotstring
be empty.   metadataDomain:
     A corpus must always be assigned to at least one group.name: metadata.domain
      in: query
      itemsdescription: |
       type: integerDomain metadata descriptor.

   example: [ 1, 3 ] Examples: `legal`
  corpusId:       descriptionschema:
Corpus ID       type: string
    metadataProject:
 example: 5a0ba1267f0571.04642701     CorpusMetadata:name: metadata.project
      typein: objectquery
      propertiesdescription: |
       domain: Project metadata descriptor.

      type: string Examples: `0192 EC Project`
      nullableschema:
 true       type: string
  example: legal metadataSubject:
      name: metadata.subject:
      in: query
  type: string   description: |
      nullable: true Subject metadata descriptor.

      example: EU treatiesExamples: `EU treaties`
      clientschema:
          type: string
    numericalIds:
      nullablename: trueids
      in: query
  example: Very Important Client description: |
      project:  One or more ID(s) for filtering, comma-separated.

 type: string      Examples: `3`, `3,4`
  nullable    schema:
 true       type: string
  example: 0192 EC Project style: form
      descriptionexplode: false
    offset:
    type  name: stringoffset
      in: query
  nullable: true   description: |
      example: created byOffset DGTto start query from.  corpusName:
   **Must** be used together with `limit`.

 type: string       exampleExamples: English`50`, to`100`
German DGT.tmx     CorpusVersionschema:
        type: objectinteger
    projectIdInPath:
 required:     name: projectId
  - version   description: Project ID
   - counts  in: path
     - engine_idsrequired: true
      schema:
- timestamps       propertiestype: integer
       version example: 5
    sourceLanguage:
    $ref: '#/components/schemas/corpusVersion'
  name: source_language
      countsin: query
      description: |
 $ref: '#/components/schemas/CorpusCounts'      Source language.

engine_ids:        Examples: `en`, `fr`
$ref: '#/components/schemas/CorpusVersionEngineIds'     schema:
   timestamps:     type: string
    $refstringIds:
'#/components/schemas/CorpusVersionTimestamps'      corpusVersionname: ids
      descriptionin: Thequery
version of the corpus   description: |
   type: integer    One or  example: 1
 more ID(s) for filtering, comma-separated.

 CorpusVersionCollection:       typeExamples: object `5b04a7263fa509.a4444794`, `5b04a7263fa509.a4444794,5b0412363fa5c1.a4354792`
      requiredschema:
        type: string
- data     style: form
  - meta   explode: false
  properties:  targetLanguage:
      dataname: target_language
      in: query
  type: array   description: |
      items:  Target language.

        $refExamples: '#/components/schemas/CorpusVersion' `en`, `fr`
      schema:
 meta:       type: string
  $refrequestBodies:
'#/components/schemas/CollectionMetadata'     CorpusVersionEngineIdsCreateCorpus:
      typecontent:
 object       requiredmultipart/form-data:
        -  trainedschema:
        - tuned   $ref: '#/components/schemas/CreateCorpus'
  properties:  CreateEngine:
      trainedcontent:
          typeapplication/json:
array           itemsschema:
            type: integer$ref: '#/components/schemas/CreateEngine'
      required: true
    exampleCreateEngineInstance:
 [ 2, 8, 14 ] required: true
      tunedcontent:
          typeapplication/json:
array           itemsschema:
            type: integerobject
          example: [ 2,required:
8, 14 ]     CorpusVersionTimestamps:       type: object- engine_id
      required:         - createddispatcher_atid
      properties:         created_atproperties:
          $ref: '#/components/schemas/createdAt'   engine_id:
 CreateCorpus:       type: object       required$ref: '#/components/schemas/engineId'
       - file      dispatcher_id:
  - format         - group_ids[]   $ref: '#/components/schemas/dispatcherId'
  properties:  CreateFile:
      filecontent:
        multipart/form-data:
 type: object        schema:
format:            $ref: '#/components/schemas/corpusFormatCreateFile'
    CreateProject:
   group_ids[]:   required: true
      $refcontent:
'#/components/schemas/groupId'         source_languageapplication/json:
          $ref: '#/components/schemas/sourceLanguage'
        target_language:schema:
            $ref: '#/components/schemas/targetLanguageCreateProject'
    CreateTranslationJob:
   metadata[domain]:   required: true
      typecontent:
string        application/json:
  example: legal       schema:
 metadata[subject]:           type$ref: string'#/components/schemas/CreateTranslationJob'
    UpdateCorpus:
     example content: EU
treaties         metadata[client]application/json:
          typeschema:
string            example: Very Important Client
 $ref: '#/components/schemas/UpdateCorpus'
    UpdateCorpusContent:
      metadata[project]content:
          typemultipart/form-data:
string          schema:
example: 0192 EC Project         metadata[description]$ref: '#/components/schemas/UpdateCorpusContent'
    UpdateEngine:
    type: string required: true
      content:
 example: created by DGT     CreateEngineapplication/json:
      type: object   schema:
   required:         - name$ref: '#/components/schemas/UpdateEngine'
    UpdateProject:
   - source_language  required: true
     - target_language content:
        application/json:
     - group_id    schema:
    - resources       properties$ref: '#/components/schemas/UpdateProject'
  responses:
    name200OctetStream:
      description: OK
   type: string  content:
        exampleapplication/octet-stream:
Engine 1         source_languageschema:
          $ref: '#/components/schemas/sourceLanguage'  type: string
            target_languageformat: binary
    204NoContent:
      $ref: '#/components/schemas/targetLanguage'
 description: No Content
    400BadRequest:
      group_id:description: Bad Request
      content:
    $ref: '#/components/schemas/groupId'    application/json:
          resourcesschema:
            $ref: '#/components/schemas/CreateEngineResourcesError'
    CreateEngineResources401Unauthorized:
      typedescription: objectUnauthorized
      requiredcontent:
        - corpus_idsapplication/json:
       properties:       schema:
 corpus_ids:           $ref: '#/components/schemas/CreateEngineResourcesCorpusIdsError'
    403Forbidden:
    stock_corpora:  description: Insufficient permissions
      typecontent:
boolean           descriptionapplication/json:
Whether or not to use available stock corpora for training theschema:
engine.         stock_engine_id:
          $ref: '#/components/schemas/nullableStockEngineIdError'
    CreateEngineResourcesCorpusIds404NotFound:
      typedescription: objectResource not found
    required422UnprocessableEntity:
      description: Unprocessable entity
   - core500InternalServerError:
      propertiesdescription: Internal server error while processing the request
    core:  content:
        typeapplication/json: array
          itemsschema:
            type: string$ref: '#/components/schemas/Error'
    502BadGateway:
      exampledescription: Bad [ '51fc7ea3fa889.b0027797', '54018363fa5c1.044227af' ]
 Gateway
    504GatewayTimeout:
      auxiliarydescription: Gateway Timeout
  securitySchemes:
    bearer:
  type: array   type: http
      itemsscheme: bearer
      description: API key
  typeschemas:
string    catToolServerId:
      exampledescription: [ '5b04a7263fa509.77444794', '5b0412363fa5c1.c4354792' ] CAT tool server ID in Globalese
      createdAttype: integer
      descriptionexample: Created10
timestamp in ISO 8601 formatcatToolServerType:
      type: string
      example: "2017-08-30T04:34:26+00:00"
    dispatcherId:
      description: Segment-based translation dispatcher ID
      type: integer
      example: 1
    dispatcherRegion:
      type: string
      example: "europe-west1"
    dispatcherUrlenum:
        - memoq
        - memsource
        - smartcat
        - xtm
    CollectionMetadata:
      type: object
      required:
        - counts
      properties:
        counts:
          type: object
          required:
            - total
            - filtered
          properties:
            total:
              description: The total number of resources in the system, irrespective of any filters.
              type: integer
              example: 100
            filtered:
              description: The number of resources in the system matching the filters.
              type: integer
              example: 40
    Corpus:
      type: object
      required:
        - id
        - actions
        - cat
        - counts
        - engines
        - format
        - groups
        - metadata
        - name
        - source_language
        - target_language
        - version
      properties:
        id:
          $ref: '#/components/schemas/corpusId'
        actions:
          $ref: '#/components/schemas/CorpusActions'
        cat:
          $ref: '#/components/schemas/CorpusCat'
        counts:
          $ref: '#/components/schemas/CorpusCounts'
        engine_ids:
          type: array
          items:
            type: integer
          example: [ 2, 8, 14 ]
        format:
          $ref: '#/components/schemas/corpusFormat'
        group_ids:
          $ref: '#/components/schemas/corpusGroupIds'
        metadata:
          $ref: '#/components/schemas/CorpusMetadata'
        name:
          $ref: '#/components/schemas/corpusName'
        source_language:
          $ref: '#/components/schemas/sourceLanguage'
        target_language:
          $ref: '#/components/schemas/targetLanguage'
        version:
          $ref: '#/components/schemas/corpusVersion'
    CorpusActions:
      type: object
      description: An object describing the actions possible against a corpus.
      required:
        - delete
        - update
      properties:
        delete:
          type: boolean
        update:
          type: boolean
    CorpusCat:
      type: object
      nullable: true
      description: |
        If the corpus was created by retrieving a CAT tool server corpus, this object contains relevant information.
      required:
        - corpus
        - server
      properties:
        corpus:
          $ref: '#/components/schemas/CorpusCatCorpus'
        server:
          $ref: '#/components/schemas/CorpusCatServer'
    CorpusCatCorpus:
      type: object
      required:
        - id
      properties:
        id:
          $ref: '#/components/schemas/remoteCorpusId'
    CorpusCatServer:
      type: object
      required:
        - id
        - type
      properties:
        id:
          $ref: '#/components/schemas/catToolServerId'
        type:
          $ref: '#/components/schemas/catToolServerType'
    CorpusCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Corpus'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    CorpusContent:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            type: object
            required:
              - id
              - content
            properties:
              id:
                type: string
                example: "1"
                nullable: true
              content:
                type: object
                required:
                  - source
                  - target
                properties:
                  source:
                    type: string
                  target:
                    type: string
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    CorpusCounts:
      type: object
      required:
        - segment_count
        - source_word_count
        - target_word_count
        - source_character_count
        - target_character_count
      properties:
        segment_count:
          type: integer
          example: 145952
        source_word_count:
          type: integer
          example: 2819806
        target_word_count:
          type: integer
          example: 3120176
        source_character_count:
          type: integer
          example: 24235334
        target_character_count:
          type: integer
          example: 29194748
    CorpusEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          properties:
            resource_id:
              $ref: '#/components/schemas/corpusId'
            type:
              type: string
              enum:
                - uploaded
                - updated
                - new_version_uploaded
    CorpusEventCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CorpusEvent'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    corpusFormat:
      type: string
      enum:
        - csv-comma
        - csv-memoq
        - csv-semicolon
        - tmx
        - tbx
        - tsv
        - xliff
        - xliff-memoq
        - xliff-memsource
        - xliff-sdl
        - xliff-smartcat
        - xliff-translate5
        - xliff-wordbee
        - xliff-xtm
    corpusGroupIds:
      type: array
      description: |
        Cannot be empty.
        A corpus must always be assigned to at least one group.
      items:
        type: integer
      example: [ 1, 3 ]
    corpusId:
      description: Corpus ID
      type: string
      example: 5a0ba1267f0571.04642701
    CorpusMetadata:
      type: object
      properties:
        domain:
          type: string
          nullable: true
          example: legal
        subject:
          type: string
          nullable: true
          example: EU treaties
        client:
          type: string
          nullable: true
          example: Very Important Client
        project:
          type: string
          nullable: true
          example: 0192 EC Project
        description:
          type: string
          nullable: true
          example: created by DGT
    corpusName:
      type: string
      example: English to German DGT.tmx
    CorpusVersion:
      type: object
      required:
        - version
        - counts
        - engine_ids
        - timestamps
      properties:
        version:
          $ref: '#/components/schemas/corpusVersion'
        counts:
          $ref: '#/components/schemas/CorpusCounts'
        engine_ids:
          $ref: '#/components/schemas/CorpusVersionEngineIds'
        timestamps:
          $ref: '#/components/schemas/CorpusVersionTimestamps'
    corpusVersion:
      description: The version of the corpus
      type: integer
      example: 1
    CorpusVersionCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CorpusVersion'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    CorpusVersionEngineIds:
      type: object
      required:
        - trained
        - tuned
      properties:
        trained:
          type: array
          items:
            type: integer
          example: [ 2, 8, 14 ]
        tuned:
          type: array
          items:
            type: integer
          example: [ 2, 8, 14 ]
    CorpusVersionTimestamps:
      type: object
      required:
        - created_at
      properties:
        created_at:
          $ref: '#/components/schemas/createdAt'
    CreateCorpus:
      type: object
      required:
        - file
        - format
        - group_ids[]
      properties:
        file:
          type: object
        format:
          $ref: '#/components/schemas/corpusFormat'
        group_ids[]:
          $ref: '#/components/schemas/groupId'
        source_language:
          $ref: '#/components/schemas/sourceLanguage'
        target_language:
          $ref: '#/components/schemas/targetLanguage'
        metadata[domain]:
          type: string
          example: legal
        metadata[subject]:
          type: string
          example: EU treaties
        metadata[client]:
          type: string
          example: Very Important Client
        metadata[project]:
          type: string
          example: 0192 EC Project
        metadata[description]:
          type: string
          example: created by DGT
    CreateEngine:
      type: object
      required:
        - name
        - source_language
        - target_language
        - group_id
        - resources
      properties:
        name:
          type: string
          example: Engine 1
        source_language:
          $ref: '#/components/schemas/sourceLanguage'
        target_language:
          $ref: '#/components/schemas/targetLanguage'
        group_id:
          $ref: '#/components/schemas/groupId'
        resources:
          $ref: '#/components/schemas/CreateEngineResources'
    CreateEngineResources:
      type: object
      required:
        - corpus_ids
      properties:
        corpus_ids:
          $ref: '#/components/schemas/CreateEngineResourcesCorpusIds'
        stock_corpora:
          type: boolean
          description: Whether or not to use available stock corpora for training the engine.
        stock_engine_id:
          $ref: '#/components/schemas/nullableStockEngineId'
    CreateEngineResourcesCorpusIds:
      type: object
      required:
        - core
      properties:
        core:
          type: array
          items:
            type: string
          example: [ '51fc7ea3fa889.b0027797', '54018363fa5c1.044227af' ]
        auxiliary:
          type: array
          items:
            type: string
          example: [ '5b04a7263fa509.77444794', '5b0412363fa5c1.c4354792' ]
    createdAt:
      description: Created timestamp in ISO 8601 format
      type: string
      example: "2017-08-30T04:34:26+00:00"
    CreateFile:
      type: object
      required:
        - file
        - format
      properties:
        file:
          type: object
        format:
          $ref: '#/components/schemas/fileFormat'
    CreateProject:
      type: object
      required:
        - name
        - source_language
        - target_language
        - group_id
      properties:
        name:
          type: string
          example: Project 1
        source_language:
          $ref: '#/components/schemas/sourceLanguage'
        target_language:
          $ref: '#/components/schemas/targetLanguage'
        group_id:
          $ref: '#/components/schemas/groupId'
        engine_id:
          $ref: '#/components/schemas/nullableEngineId'
        stock_engine_id:
          $ref: '#/components/schemas/nullableStockEngineId'
        cat:
          $ref: '#/components/schemas/CreateProjectCat'
    CreateProjectCat:
      type: object
      required:
        - server
        - project
      properties:
        server:
          $ref: '#/components/schemas/CreateProjectCatServer'
        project:
          $ref: '#/components/schemas/CreateProjectCatProject'
    CreateProjectCatServer:
      type: object
      required:
        - id
      properties:
        id:
          type: integer
          description: CAT tool server connection ID as stored in Globalese.
          example: 2
    CreateProjectCatProject:
      type: object
      required:
        - id
      properties:
        id:
          oneOf:
            - type: integer
            - type: string
          description: CAT tool project ID as stored on the CAT tool server.
          example: 5987c27a-da1e-4060-b08d-00aa6dbd0bba
    CreateTranslationJob:
      type: object
      required:
        - file_id
      properties:
        file_id:
          $ref: '#/components/schemas/fileId'
    dispatcherId:
      description: Segment-based translation dispatcher ID
      type: integer
      example: 1
    dispatcherRegion:
      type: string
      example: "europe-west1"
    dispatcherUrl:
      type: string
      example: "https://dispatcher-europe-west1-ja6vheawuq-ew.a.run.app"
    Engine:
      type: object
      required:
        - id
        - actions
        - counts
        - group_id
        - health
        - instance_ids
        - name
        - published
        - source_language
        - status
        - stock_corpora
        - stock_engine_id
        - target_language
        - uuid
        - version
      properties:
        id:
          $ref: '#/components/schemas/engineId'
        actions:
          $ref: '#/components/schemas/EngineActions'
        counts:
          $ref: '#/components/schemas/EngineCounts'
        group_id:
          $ref: '#/components/schemas/groupId'
        health:
          type: string
          nullable: true
          enum:
            - current
            - deprecated
            - supported
        instance_ids:
          type: array
          items:
            $ref: '#/components/schemas/numericalId'
        name:
          type: string
          example: Engine 1
        published:
          type: boolean
          example: true
        source_language:
          $ref: '#/components/schemas/sourceLanguage'
        status:
          $ref: '#/components/schemas/engineStatus'
        stock_corpora:
          type: boolean
          example: true
        stock_engine_id:
          $ref: '#/components/schemas/nullableStockEngineId'
        target_language:
          $ref: '#/components/schemas/targetLanguage'
        uuid:
          $ref: '#/components/schemas/uuid'
        version:
          type: string
          nullable: true
          example: 3.5.5
    EngineActions:
      type: object
      description: An object describing the actions possible against an engine.
      required:
        - delete
        - deploy
        - train
        - translate
        - tune
        - update
      properties:
        delete:
          type: boolean
        deploy:
          type: boolean
        train:
          type: boolean
        translate:
          type: boolean
        tune:
          type: boolean
        update:
          type: boolean
    EngineCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Engine'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    EngineCorpora:
      type: object
      description: An engine cannot contain more than 500 corpora in total.
      required:
        - core
        - auxiliary
        - stock
      properties:
        auxiliary:
          type: array
          items:
            $ref: '#/components/schemas/EngineCorpusIdWithVersion'
        core:
          type: array
          items:
            $ref: '#/components/schemas/EngineCorpusIdWithVersion'
        stock:
          type: boolean
    EngineCorpusIdWithVersion:
      type: object
      required:
        - id
        - version
      properties:
        id:
          $ref: '#/components/schemas/corpusId'
        version:
          $ref: '#/components/schemas/corpusVersion'
    EngineCounts:
      type: object
      required:
        - corpora
      properties:
        corpora:
          type: object
          required:
            - core
            - auxiliary
          properties:
            core:
              type: object
              properties:
                segment_count:
                  type: number
            auxiliary:
              type: object
              properties:
                segment_count:
                  type: number
    EngineEvent:
      allOf:
        - $ref: '#/components/schemas/Event'
        - type: object
          properties:
            error_code:
              $ref: '#/components/schemas/errorCode'
            resource_id:
              $ref: '#/components/schemas/engineId'
            type:
              type: string
              enum:
                - created
                - deleted
                - instance_deployment_failed
                - instance_deployment_finished
                - instance_deployment_started
                - instance_removal_failed
                - instance_removal_finished
                - instance_removal_started
                - instance_removal_started_by_billing
                - published
                - stock_engine_removed
                - training_cancelled
                - training_failed
                - training_finished
                - training_started
                - tuning_failed
                - tuning_finished
                - tuning_started
                - unpublished
                - updated
    EngineEventCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EngineEvent'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    engineId:
      description: Engine ID
      type: integer
      example: 10
    EngineInstance:
      type: object
      required:
        - id
        - engine_id
        - dispatcher_url
        - status
      properties:
        id:
          $ref: '#/components/schemas/numericalId'
        engine_id:
          $ref: '#/components/schemas/engineId'
        dispatcher_url:
          $ref: '#/components/schemas/dispatcherUrl'
        status:
          $ref: '#/components/schemas/engineInstanceStatus'
    EngineInstanceCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/EngineInstance'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    engineInstanceStatus:
      type: string
      enum:
        - deploying
        - error_removal_engine_manager_internal_error
        - error_removal_engine_manager_rejected_request
        - error_removal
        - on
        - queued
        - removing
    EngineResources:
      type: object
      required:
        - corpora
        - stock_engine
      properties:
        corpora:
          $ref: '#/components/schemas/EngineResourcesCorpora'
        stock_engine:
          $ref: '#/components/schemas/StockEngine'
    EngineResourcesCorpora:
      type: object
      required:
        - current
        - trained
        - tuned
      properties:
        current:
          $ref: '#/components/schemas/EngineCorpora'
        trained:
          $ref: '#/components/schemas/EngineCorpora'
        tuned:
          type: array
          items:
            $ref: '#/components/schemas/EngineCorpusIdWithVersion'
    engineStatus:
      type: string
      enum:
        - changed
        - error
        - queued
        - trained
        - training
        - tuned
        - tuning
        - untrained
    Error:
      type: object
      properties:
        error:
          type: string
          example: "Error message."
      required:
        - error
    errorCode:
      type: integer
      nullable: true
      example: 104
    Event:
      type: object
      required:
        - id
        - resource_id
        - timestamp
        - type
        - user
      properties:
        id:
          $ref: '#/components/schemas/numericalId'
        timestamp:
          $ref: '#/components/schemas/timestamp'
        user:
          $ref: '#/components/schemas/EventUser'
    EventUser:
      type: object
      nullable: true
      required:
        - id
        - name
      properties:
        id:
          $ref: '#/components/schemas/userId'
        name:
          $ref: '#/components/schemas/userName'
    File:
      type: stringobject
      examplerequired: "https://dispatcher-europe-west1-ja6vheawuq-ew.a.run.app"
        - id
        - actions
    Engine:    - counts
 type: object      - required:format
        - group_id
        - actionsname
        - countsproject_id
        - groupsource_idlanguage
        - healthstatus
        - instancetarget_idslanguage
        - nametimestamps
      properties:
 - published      id:
  -  source_language      $ref: '#/components/schemas/fileId'
  -  status    actions:
    - stock_corpora     $ref: '#/components/schemas/FileActions'
  - stock_engine_id     cat:
   - target_language      $ref: '#/components/schemas/FileCat'
 - uuid      counts:
  - version       properties$ref: '#/components/schemas/FileCounts'
        idformat:
          $ref: '#/components/schemas/engineIdfileFormat'
        actionsgroup_id:
          $ref: '#/components/schemas/EngineActionsgroupId'
        countsname:
          type: string
          example: Chapter 1.xliff
        project_id:
          $ref: '#/components/schemas/EngineCountsprojectId'
        groupsource_idlanguage:
          $ref: '#/components/schemas/groupIdsourceLanguage'
        healthstatus:
          type$ref: string'#/components/schemas/fileStatus'
          nullabletarget_language:
true           enum$ref: '#/components/schemas/targetLanguage'
        timestamps:
  - current       $ref: '#/components/schemas/FileTimestamps'
    -FileActions:
deprecated      type: object
     - supporteddescription: An object describing the actions possible against a instance_ids:
project file.
      required:
  type: array     - delete
    items:    - deliver
       $ref: '#/components/schemas/numericalId'
 - translate
       nameproperties:
          typedelete: string
          exampletype: Engineboolean
1         publisheddeliver:
          type: boolean
         translate:
example: true         source_languagetype: boolean
    FileCat:
    $ref: '#/components/schemas/sourceLanguage'
  type: object
      statusnullable: true
      description: An object $ref: '#/components/schemas/engineStatus'
        stock_corpora:describing the links to a CAT tool file.
      required:
      type: boolean   - file
      exampleproperties:
true         stock_engine_idfile:
          $ref: '#/components/schemas/nullableStockEngineIdFileCatFile'
    FileCatFile:
   target_language:   type: object
      $refrequired:
'#/components/schemas/targetLanguage'        - id
uuid:        - type
 $ref: '#/components/schemas/uuid'      - created_at
 version:       - updated_at
  type: string     - retrieved_at
    nullable: true   - delivered_at
      exampleproperties: 3.5.5
        EngineActionsid:
      type: object    oneOf:
            - descriptiontype: integer
   An object describing the actions possible against an engine. - type: string
   required:       example: 5678
- delete       type:
 - deploy         - train$ref: '#/components/schemas/catToolServerType'
        created_at:
  -  translate      $ref: '#/components/schemas/timestamp'
 - tune      updated_at:
  - update       properties:$ref: '#/components/schemas/nullableTimestamp'
        deleteretrieved_at:
          type$ref: boolean'#/components/schemas/nullableTimestamp'
        deploydelivered_at:
          type$ref: boolean'#/components/schemas/nullableTimestamp'
    FileCollection:
     train type: object
      required:
  type:    boolean  - data
     translate:   - meta
      typeproperties:
boolean         tunedata:
          type: array
 boolean         updateitems:
          type  $ref: boolean'#/components/schemas/File'
    EngineCollection:    meta:
  type: object       required:$ref: '#/components/schemas/CollectionMetadata'
    FileCounts:
   - data  type: object
     - metarequired:
      properties:  - total
     data:   - new
      typeproperties:
array           itemstotal:

           $ref: '#/components/schemas/EngineSegmentableCounts'
        metanew:
          $ref: '#/components/schemas/CollectionMetadataSegmentableCounts'
    EngineCorporafileFormat:
      type: objectstring
      descriptionenum:
An engine cannot contain more than 500 corpora in- total.xliff
      required:   -      - corexliff-idiom
        - auxiliary
        - stock
      properties:xliff-memoq
        - auxiliary:xliff-memsource
        - xliff-sap
type: array       - xliff-sdl
  items:      - xliff-smartcat
     $ref: '#/components/schemas/EngineCorpusIdWithVersion'  - xliff-translate5
     core:   - xliff-wordbee
      type: array - xliff-wordfast
        items:- xliff-xtm
    fileId:
      $refdescription: '#/components/schemas/EngineCorpusIdWithVersion'
File ID
       stocktype: string
         typeexample: boolean51fc7ea3fa889.a0027797
    EngineCorpusIdWithVersionfileStatus:
      type: objectstring
      requiredenum:
        - idempty
        - versionnew
      properties:  - queued
     id:   - queueing
      $ref: '#/components/schemas/corpusId'
  - translated
      version:  - translating
       $refFileTimestamps:
'#/components/schemas/corpusVersion'     EngineCounts:       type: object
      required:
        - corporauploaded_at
      properties:  - translated_at
      corporaproperties:
          typeuploaded_at:
object           required:
            - core$ref: '#/components/schemas/timestamp'
        translated_at:
      - auxiliary   $ref: '#/components/schemas/nullableTimestamp'
    Group:
 properties:     type: object
      corerequired:
        - id
    type: object   - name
      properties:
   properties:     id:
           segment_count:$ref: '#/components/schemas/groupId'
        name:
          type: numberstring
            auxiliaryexample: Default
      GroupCollection:
      type: object
      required:
        properties:- data
      properties:
        segment_countdata:
          type: array
      type: number     EngineEvent:
   items:
  allOf:         - $ref: '#/components/schemas/EventGroup'
     groupId:
  - type: object  description: Group ID
      propertiestype: integer
      example: 2
    error_codeJobTimestamps:
      type: object
      $refrequired:
'#/components/schemas/errorCode'        - created_at
      resource_id:  - started_at
        - finishing_at
 $ref: '#/components/schemas/engineId'    properties:
        typecreated_at:
          $ref: '#/components/schemas/createdAt'
    type: string   started_at:
           enumdescription: Timestamp of when the job started in ISO 8601 format
      - created   type: string
          nullable: true
- deleted         example: "2017-08-30T04:34:26+00:00"
      -  instance_deployment_failedfinishing_at:
          description: Timestamp of when the job - instance_deployment_finished
     is estimated to finish in ISO 8601 format
          - instance_deployment_startedtype: string
          nullable: true
    - instance_removal_failed     example: "2043-11-03T07:53:10+00:00"
    Language:
     - instance_removal_finished
 type: object
      required:
        - instance_removal_startedid
      properties:
        id:
- instance_removal_started_by_billing         type: string
      - published   example: en-us
    LanguageCollection:
       - stock_engine_removedtype: object
      required:
         - training_cancelleddata
        -   meta
    - training_failed    properties:
        data:
   - training_finished      type: array
         - training_starteditems:
            $ref: '#/components/schemas/Language'
  - tuning_failed     meta:
           - tuning_finished$ref: '#/components/schemas/CollectionMetadata'
    nullableEngineId:
      description: Engine ID
   - tuning_started  type: integer
      nullable: true
     - unpublishedexample: 10
    nullableStockEngineId:
      description: Stock engine ID
- updated     EngineEventCollectionnullable: true
      type: objectinteger
      requiredexample: 23
    nullableTimestamp:
  - data   type: string
    - meta nullable: true
    properties:  example: "2020-06-06T10:45:00+00:00"
     datanumericalId:
      description: ID
  type: array   type: integer
      itemsexample: 10
    Project:
      $reftype: '#/components/schemas/EngineEvent'object
        metarequired:
        -  $ref: '#/components/schemas/CollectionMetadata'id
     engineId:   - actions
  description: Engine ID    - engine_id
 type: integer      - example:group_id
10     EngineInstance:   - name
  type: object       required:- source_language
        - idstatus
        - stock_engine_id
        - dispatchertarget_urllanguage
        - statustimestamps
      properties:
        id:
          $ref: '#/components/schemas/numericalIdprojectId'
        engine_idactions:
          $ref: '#/components/schemas/engineIdProjectActions'
        dispatcher_urlcat:
          $ref: '#/components/schemas/dispatcherUrlProjectCat'
        statuscounts:
          $ref: '#/components/schemas/engineInstanceStatusProjectCounts'
    EngineInstanceCollection    engine_id:
      type: object   $ref: '#/components/schemas/nullableEngineId'
  required:      group_id:
  - data       $ref:  - meta'#/components/schemas/groupId'
        propertiesname:
        data  type: string
          typeexample: arrayProject 1
         itemssource_language:

           $ref: '#/components/schemas/EngineInstancesourceLanguage'
        metastatus:
          $ref: '#/components/schemas/CollectionMetadataProjectStatus'
    engineInstanceStatus:    stock_engine_id:
  type: string       enum:
        - deploying
        - error_removal_engine_manager_internal_error
        - error_removal_engine_manager_rejected_request$ref: '#/components/schemas/nullableStockEngineId'
        target_language:
 - error_removal         - on$ref: '#/components/schemas/targetLanguage'
        timestamps:
- queued         - removing$ref: '#/components/schemas/ProjectTimestamps'
    EngineResourcesProjectActions:
      type: object
      requireddescription: An object describing the actions possible against a  - corporaproject.
      required:
        - stock_enginedelete
      properties:  - translate
     corpora:   - update
      $refproperties:
'#/components/schemas/EngineResourcesCorpora'         stock_enginedelete:
          $reftype: '#/components/schemas/StockEngine'boolean
    EngineResourcesCorpora:    translate:
  type: object       requiredtype: boolean
       - currentupdate:
        - trained type: boolean
    ProjectCat:
 - tuned       propertiestype: object
       currentnullable: true
      description: An object $ref: '#/components/schemas/EngineCorpora'
        trained:describing the links to a CAT tool server and project.
      required:
    $ref: '#/components/schemas/EngineCorpora'   -   project
  tuned:      - server
   type: array  properties:
        itemsproject:
 
          $ref: '#/components/schemas/EngineCorpusIdWithVersionProjectCatProject'
    engineStatus:    server:
  type: string       enum$ref: '#/components/schemas/ProjectCatServer'
    ProjectCatProject:
  - changed   type: object
    - error required:
       - queued
        - trainedid
        - trainingname
      properties:
 - tuned      id:
  - tuning        oneOf:
- untrained     Error:      - type: object
 integer
    properties:         error:
          - type: string
          example: "Error message." 849660f2-d081-4d7f-b266-f526ad073521
        requiredname:
 
      - error     errorCodetype:    string
  type: integer       nullableexample: trueMy CAT server project
   example: 104
    Event ProjectCatServer:
      type: object
      required:
        - id
        - resource_idname
        - timestamptype
      properties:
 - type      id:
  - user       propertiestype: integer
          idexample: 5
        name:
    $ref: '#/components/schemas/numericalId'     type: string
  timestamp:        example: My CAT $ref: '#/components/schemas/timestamp'server connection
        usertype:
          $ref: '#/components/schemas/EventUsercatToolServerType'
    EventUserProjectCollection:
      type: object
      nullablerequired:
  true      - required:data
        - idmeta
      properties:
        data:
  - name       propertiestype: array
        id  items:
            $ref: '#/components/schemas/userIdProject'
        namemeta:
          $ref: '#/components/schemas/userNameCollectionMetadata'
    GroupProjectCounts:
      type: object
      required:
        - files
id      properties:
  - name     files:
 properties:         idtype: number
          $refexample: '#/components/schemas/groupId'5
    projectId:
    name:  description: Project ID
      type: string
  integer
       example: Default30
    GroupCollectionprojectName:
      type: objectstring
      requiredexample: My Project
     ProjectStatus:
- data       propertiestype: string
       dataenum:
        - empty
type: array       - new
  items:      - queued
     $ref: '#/components/schemas/Group'  - started
 groupId:       description:- Grouptranslated
ID       type: integer- translating
    ProjectTimestamps:
example: 2     Languagetype: object
     type required:
  object      - required:created_at
        - idupdated_at
      properties:
        idcreated_at:
          type$ref: string'#/components/schemas/createdAt'
          exampleupdated_at:
en-us     LanguageCollection:       type$ref: object'#/components/schemas/updatedAt'
      requiredremoteCorpusId:
      description: The -ID dataof the corpus on the CAT tool server.
 - meta     oneOf:
 properties:       -  datatype: number
        - type: arraystring
      example: "a6fd0c40-7b5c-48bf-89c2-629417b398cd"
  items:  RemoteDispatcherCollection:
      type: object
  $ref: '#/components/schemas/Language'   required:
     meta:   - data
      $ref: '#/components/schemas/CollectionMetadata'
  - meta
  nullableStockEngineId:    properties:
  description: Stock engine ID   data:
   nullable: true       type: integerarray
      example: 23     numericalIditems:
      description: ID       type$ref: integer'#/components/schemas/RemoteDispatcher'
      example: 10     remoteCorpusIdmeta:
      description: The ID of the corpus on the CAT tool server.$ref: '#/components/schemas/CollectionMetadata'
    RemoteDispatcher:
      oneOftype: object
       - typerequired:
number         - type:id
string       example: "a6fd0c40-7b5c-48bf-89c2-629417b398cd"- region
    RemoteDispatcherCollection:    - url
 type: object      - required:timestamps
      properties:
 - data      id:
  - meta       properties$ref: '#/components/schemas/dispatcherId'
        dataregion:
          type$ref: array'#/components/schemas/dispatcherRegion'
          itemsurl:
 
          $ref: '#/components/schemas/RemoteDispatcherdispatcherUrl'
        metatimestamps:
          $ref: '#/components/schemas/CollectionMetadataRemoteDispatcherTimestamps'
    RemoteDispatcherRemoteDispatcherTimestamps:
      type: object
      required:
        - idcreated_at
        - regionupdated_at
      properties:
 - url      created_at:
  - timestamps       properties$ref: '#/components/schemas/createdAt'
        idupdated_at:
          $ref: '#/components/schemas/dispatcherId'updatedAt'
    sourceLanguage:
      description: Source language code
      type: string
 region:     example: en-us
    StockEngine:
      $reftype: '#/components/schemas/dispatcherRegion'object
        urlrequired:
        - id
$ref: '#/components/schemas/dispatcherUrl'       - source_language
timestamps:        - target_language
 $ref: '#/components/schemas/RemoteDispatcherTimestamps'     RemoteDispatcherTimestamps: - version
    type: object   - timestamps
  required:    properties:
    - created_at      id:
  - updated_at       properties$ref: '#/components/schemas/stockEngineId'
       created source_atlanguage:
          $ref: '#/components/schemas/createdAtsourceLanguage'
        updatedtarget_atlanguage:
          $ref: '#/components/schemas/updatedAttargetLanguage'
 
  sourceLanguage:      version:
description: Source language code       type: string
          example: en-us 4.1.0
        StockEnginetimestamps:
       type: object   $ref: '#/components/schemas/StockEngineTimestamps'
    stockEngineId:
      requireddescription: Stock engine ID
     - idtype: integer
      example: -5
source_language    StockEngineTimestamps:
    - target_language type: object
      - versionrequired:
        - timestampscreated_at
      properties:
        idcreated_at:
          $ref: '#/components/schemas/stockEngineIdcreatedAt'
        sourceupdated_languageat:
          $ref: '#/components/schemas/sourceLanguageupdatedAt'
        target_languagetargetLanguage:
          $refdescription: '#/components/schemas/targetLanguage'
 Target language code
      versiontype: string
      example: it
 type: string  timestamp:
      description: Timestamp example: 4.1.0
 in ISO 8601 format
      timestampstype: string
         $ref: '#/components/schemas/StockEngineTimestamps'example: "2020-06-06T10:45:00+00:00"
    stockEngineIdTranslationJob:
      descriptiontype: Stockobject
engine ID     required:
 type: integer      - example:id
5     StockEngineTimestamps:   - file_id
  type: object       required:- project_id
        - created_attimestamps
      properties:
        created_atid:
          $ref: '#/components/schemas/createdAtnumericalId'
        updatedfile_atid:
          $ref: '#/components/schemas/updatedAtfileId'
    targetLanguage:       description: Target language code
      type: string
      example: itproject_id:
    timestamp:       description: Timestamp in ISO 8601 format$ref: '#/components/schemas/projectId'
        timestamps:
  type: string       example: "2020-06-06T10:45:00+00:00"$ref: '#/components/schemas/JobTimestamps'
    UpdateCorpus:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/corpusName'
        group_ids:
          $ref: '#/components/schemas/corpusGroupIds'
        metadata:
          $ref: '#/components/schemas/CorpusMetadata'
    UpdateCorpusContent:
      type: object
      required:
        - file
      properties:
        file:
          type: object
    updatedAt:
      description: Updated timestamp in ISO 8601 format
      type: string
      nullable: true
      example: "2017-08-30T04:34:26+00:00"
    UpdateProject:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/projectName'
        engine_id:
          $ref: '#/components/schemas/nullableEngineId'
        stock_engine_id:
          $ref: '#/components/schemas/nullableStockEngineId'
    UpdateEngine:
      type: object
      properties:
        name:
          type: string
          example: Engine 1
        published:
          type: boolean
          example: true
        resources:
          $ref: '#/components/schemas/UpdateEngineResources'
    UpdateEngineResources:
      type: object
      properties:
        corpus_ids:
          $ref: '#/components/schemas/UpdateEngineResourcesCorpusIds'
        stock_corpora:
          type: boolean
          description: Whether or not to use available stock corpora for training the engine.
    UpdateEngineResourcesCorpusIds:
      type: object
      properties:
        core:
          type: array
          items:
            type: string
          example: [ '51fc7ea3fa889.b0027797', '54018363fa5c1.044227af' ]
        auxiliary:
          type: array
          items:
            type: string
          example: [ '5b04a7263fa509.77444794', '5b0412363fa5c1.c4354792' ]
    userId:
      type: integer
      example: 5
    userName:
      type: string
      example: John Doe
    uuid:
      type: string
      example: "21cfda50-1944-46fc-901c-04a168ea6fee"