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: Segment translation dispatchers
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/engineIds'
        - $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: sortname
          in: query
          schemadescription: Full or partial engine name for filtering.
     type: string    schema:
        enum:    type: string
         - name:asc sort
          in: query
  - name:desc       responsesschema:
        200:    type: string
     description: OK      enum:
    content:          -   application/json:name:asc
              - schemaname:desc
              - status:asc
$ref: '#/components/schemas/EngineCollection'         401:    - status:desc
     $ref: '#/components/responses/401Unauthorized'responses:
        500200:
          $refdescription: '#/components/responses/500InternalServerError'OK
  /engine-instances:        getcontent:
       tags:     application/json:
   - Engine instances       security:  schema:
      - bearer: [ ]       summary$ref: List engine instances'#/components/schemas/EngineCollection'
        description401:
|           Returns a collection of engine instances (being) deployed.$ref: '#/components/responses/401Unauthorized'
        500:
         Required permissions: `MANAGE_ENGINES|TRANSLATE|SYSTEM_ADMINISTRATOR`$ref: '#/components/responses/500InternalServerError'
    post:
     A tags:
 translation API key can also be used for- authentication.Engines
      parameterssecurity:
        - $refbearer: '#/components/parameters/numericalIds'
[ ]
       - $refsummary: '#/components/parameters/engineIds'
  Create a new engine
     - $ref: '#/components/parameters/groupIds'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 $ref: '#/components/parameters/limitMax100'
  permissions: `MANAGE_ENGINES` in the group the engine belongs to, or `SYSTEM_ADMINISTRATOR`
      requestBody:
     -   $ref: '#/components/parametersrequestBodies/offsetCreateEngine'
      responses:
        200201:
          description: OKCreated
          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.
        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'
  /languages:
    get:
      tags:
        - Languages
      security:
        - bearer: [ ]
      summary: List languages
      description: |
        Returns a collection of languages used in Globalese.

        A translation API key can also be used for authentication.
      parameters:
        - $ref: '#/components/parameters/languageUsage'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offset'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LanguageCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        500:
          $ref: '#/components/responses/500InternalServerError'
  /segment-translation-dispatchers:
    get:
      tags:
        - Segment translation dispatchers
      security:
        - bearer: [ ]
      summary: List segment translation dispatchers
      description: |
        Required permissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoteDispatcherCollection'
        401:
          $ref: '#/components/responses/401Unauthorized'
        403:
          $ref: '#/components/responses/403Forbidden'
        500:
          $ref: '#/components/responses/500InternalServerError'
        502:
          $ref: '#/components/responses/502BadGateway'
components:
  parameters:
    corpusCatServerId:
      name: cat.server.id
      in: query
      description: |
        The ID of the CAT server the corpus is associated with.
      schema:
        type: number
        example: 10
    corpusIdInPath:
      name: corpusId
      description: Corpus ID
      in: path
      required: true
      schema:
        type: string
        example: 5b04a7263fa509.a4444794
    engineId:
      name: engine_id
      in: query
      description: |
        Engine ID for filtering.

        Examples: `1`, `2`
      schema:
        $ref: '#/components/schemas/engineId'
    engineIdInPath:
      name: engineId
      in: query
      required: true
      schema:
        type: integer
        example:
          5
    engineIds:
      name: engine_ids
      in: query
      description: |
        One or more engine ID(s) for filtering, comma-separated.

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

        Examples: `trained`, `queued,training`
      schema:
        type: string
        enum:
          - changed
          - error
          - queued
          - trained
          - training
          - tuned
          - tuning
          - untrained
    groupIds:
      name: group_ids
      in: query
      description: |
        One or more group ID(s) for filtering, comma-separated.

        Examples: `1`, `1,3,5`
      schema:
        oneOf:
          - type: integer
          - type: string
      style: form
      explode: false
    languageUsage:
      name: usage
      in: query
      description: |
        Filter for languages used in Globalese.

        Optionally, the `:source` or `:target` modifier may be appended to the parameter value to filter for languages used on the source or target language side only.

        `usage=engines:source` will return a list of languages used as engine source languages.

        `usage=engines` will return a list of languages used as engine languages, either source or target.
      schema:
        type: string
        enum:
          - engines
    limit:
      name: limit
      in: query
      description: |
        Limit for results. *May* be used together with `offset`.

        Examples: `25`, `50`
      schema:
        type: integer
    limitMax100:
      name: limit
      in: query
      description: |
        Limit for results. It cannot be greater than 100. *May* be used together with `offset`.

        Examples: `25`, `50`

        If not provided, it will automatically be set to 100.
      schema:
        type: integer
    metadataClient:
      name: metadata.client
      in: query
      description: |
        Client metadata descriptor.

        Examples: `Very Important Client`
      schema:
        type: string
    metadataDescription:
      name: metadata.description
      in: query
      description: |
        Description metadata descriptor.

        Examples: `used for 2018 campaign`
      schema:
        type: string
    metadataDomain:
      name: metadata.domain
      in: query
      description: |
        Domain metadata descriptor.

        Examples: `legal`
      schema:
        type: string
    metadataProject:
      name: metadata.project
      in: query
      description: |
        Project metadata descriptor.

        Examples: `0192 EC Project`
      schema:
        type: string
    metadataSubject:
      name: metadata.subject
      in: query
      description: |
        Subject metadata descriptor.

        Examples: `EU treaties`
      schema:
        type: string
    numericalIds:
      name: ids
      in: query
      description: |
        One or more ID(s) for filtering, comma-separated.

        Examples: `3`, `3,4`
      schema:
        type: string
      style: form
      explode: false
    offset:
      name: offset
      in: query
      description: |
        Offset to start query from. **Must** be used together with `limit`.

        Examples: `50`, `100`
      schema:
        type: integer
    sourceLanguage:
      name: source_language
      in: query
      description: |
        Source language.

        Examples: `en`, `fr`
      schema:
        type: string
    stringIds:
      name: ids
      in: query
      description: |
        One or more ID(s) for filtering, comma-separated.

        Examples: `5b04a7263fa509.a4444794`, `5b04a7263fa509.a4444794,5b0412363fa5c1.a4354792`
      schema:
        type: string
      style: form
      explode: false
    targetLanguage:
      name: target_language
   application/json:   in: query
      description: |
  schema:      Target language.

        $refExamples: '#/components/schemas/EngineInstanceCollection' `en`, `fr`
      schema:
 401:       type: string
  $refrequestBodies:
'#/components/responses/401Unauthorized'    CreateCorpus:
    403:  content:
        $refmultipart/form-data:
'#/components/responses/403Forbidden'          500schema:
            $ref: '#/components/responsesschemas/500InternalServerErrorCreateCorpus'
    postCreateEngine:
      tagscontent:
        -application/json:
Engine instances       security:  schema:
      - bearer: [ ]       summary: Create a new engine instance
 $ref: '#/components/schemas/CreateEngine'
      required: true
    descriptionCreateEngineInstance:
|      required: true
 Starts deploying an engine in thecontent:
background.        application/json:
 Required permissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`         requestBodyschema:
         $ref: '#/components/requestBodies/CreateEngineInstance'  type: object
   responses:         202required:
          description:  The newly created- engine_id
instance entity in the database.          - content:dispatcher_id
            application/jsonproperties:
              schemaengine_id:
                $ref: '#/components/schemas/EngineInstanceengineId'
         400:     dispatcher_id:
                $ref: '#/components/responsesschemas/400BadRequestdispatcherId'
    UpdateCorpus:
    401:  content:
        $refapplication/json:
'#/components/responses/401Unauthorized'          403schema:
            $ref: '#/components/responsesschemas/403ForbiddenUpdateCorpus'
    UpdateCorpusContent:
   500   content:
        multipart/form-data:
      $ref: '#/components/responses/500InternalServerError'   /engine-instances/{id}schema:
    parameters:       - name$ref: id'#/components/schemas/UpdateCorpusContent'
    UpdateEngine:
   description: Engine instance IDrequired: true
       incontent:
path        application/json:
required: true         schema:
          type: integer $ref: '#/components/schemas/UpdateEngine'
  getresponses:
    204NoContent:
  tags:    description: No Content
  - Engine instances400BadRequest:
      securitydescription: Bad Request
      - bearercontent:
[ ]       summaryapplication/json:
Show the details of an engine instance    schema:
  description: |         Returns a single engine instance.

$ref: '#/components/schemas/Error'
    401Unauthorized:
      description: RequiredUnauthorized
permissions: `MANAGE_ENGINES|TRANSLATE|SYSTEM_ADMINISTRATOR`     content:
    A translation API key can alsoapplication/json:
be used for authentication.       responsesschema:
        200:    $ref: '#/components/schemas/Error'
     description403Forbidden:
OK      description: Insufficient permissions
  content:    content:
        application/json:

             schema:
 
              $ref: '#/components/schemas/EngineInstanceError'
    404NotFound:
      401description: Resource not found
    422UnprocessableEntity:
      $ref: '#/components/responses/401Unauthorized'
 description: Unprocessable entity
    500InternalServerError:
      403description: Internal server error while processing the request
      $refcontent:
'#/components/responses/403Forbidden'        application/json:
          404schema:
            $ref: '#/components/responsesschemas/404NotFound'Error'
    502BadGateway:
      description: Bad 500Gateway
  securitySchemes:
    bearer:
     $ref type: '#/components/responses/500InternalServerError'http
      scheme: bearer
502:      description: API key
  $refschemas:
'#/components/responses/502BadGateway'     deletecatToolServerId:
      tagsdescription: CAT tool server ID in Globalese
  - Engine instances   type: integer
  security:    example: 10
   - bearercatToolServerType: [
]       summarytype: Deletestring
an engine instance    enum:
  description: |     - memoq
  Removes a deployed engine instance.  - memsource
      Required permissions: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`
 - smartcat
     responses:   - xtm
    204CollectionMetadata:
      type: object
  $ref: '#/components/responses/204NoContent'   required:
     400:   - counts
      $ref: '#/components/responses/400BadRequest'properties:
        401counts:
          $reftype: '#/components/responses/401Unauthorized'object
          403required:
           $ref: '#/components/responses/403Forbidden' - total
          404:  - filtered
       $ref: '#/components/responses/404NotFound'  properties:
      500:      total:
    $ref: '#/components/responses/500InternalServerError'         502description: The total number of resources in the system, irrespective of $ref: '#/components/responses/502BadGateway'any filters.
  /groups:     get:       tagstype: integer
       - Groups      example: security:100
        - bearer: [ ] filtered:
     summary: List groups       description: ReturnsThe anumber collectionof ofresources groupsin the authenticatedsystem usermatching is a member ofthe filters.
      parameters:         - $reftype: '#/components/parameters/limitMax100'integer
        - $ref: '#/components/parameters/offset'    example: 40
   - nameCorpus:
sort      type: object
   in: query  required:
        schema:- id
        -  actions
type: string       - cat
    enum:    -  counts
        - name:ascengines
        - format
    - name:desc   - groups
  responses:      - metadata
 200:       -    description:name
OK        - source_language
 content:       - target_language
    application/json:    - version
      properties:
  schema:      id:
          $ref: '#/components/schemas/GroupCollectioncorpusId'
        401actions:
          $ref: '#/components/responsesschemas/401UnauthorizedCorpusActions'
        403cat:
          $ref: '#/components/responsesschemas/403ForbiddenCorpusCat'
        500counts:
          $ref: '#/components/responsesschemas/500InternalServerErrorCorpusCounts'
   /languages:     getengine_ids:
      tags:    type: array
   - Languages       securityitems:
        - bearer: [ ] type: integer
    summary: List languages       descriptionexample: |[ 2, 8, 14 ]
    Returns a collection of languagesformat:
used in Globalese.          A translation API key can also be used for authentication.
      parameters:$ref: '#/components/schemas/corpusFormat'
        group_ids:
         - $ref: '#/components/parametersschemas/languageUsagecorpusGroupIds'
        - $refmetadata:
'#/components/parameters/limit'         - $ref: '#/components/parametersschemas/offsetCorpusMetadata'
       responses name:
          200$ref: '#/components/schemas/corpusName'
         descriptionsource_language:
OK           content$ref: '#/components/schemas/sourceLanguage'
           application/jsontarget_language:
          $ref: '#/components/schemas/targetLanguage'
  schema:      version:
          $ref: '#/components/schemas/LanguageCollectioncorpusVersion'
    CorpusActions:
      401type: object
      description: An object describing the actions $ref: '#/components/responses/401Unauthorized'
 possible against a corpus.
      500required:
        - delete
$ref: '#/components/responses/500InternalServerError'   /segment-translation-dispatchers:    - get:update
      tagsproperties:
        -delete:
 Segment translation dispatchers       securitytype: boolean
       - bearerupdate:
[   ]       summarytype: Listboolean
segment translation dispatchers  CorpusCat:
    description: | type:  object
     Required permissionsnullable: `MANAGE_ENGINES|SYSTEM_ADMINISTRATOR`true
      responsesdescription: |
       200: If the corpus was created by retrieving a CAT tool server description:corpus, OKthis object contains relevant information.
      contentrequired:
        - corpus
    application/json:    - server
      properties:
  schema:      corpus:
          $ref: '#/components/schemas/RemoteDispatcherCollectionCorpusCatCorpus'
        401server:
          $ref: '#/components/responsesschemas/401UnauthorizedCorpusCatServer'
    CorpusCatCorpus:
   403:   type: object
      $ref: '#/components/responses/403Forbidden'required:
        500:- id
         $refproperties:
'#/components/responses/500InternalServerError'         502id:
          $ref: '#/components/responsesschemas/502BadGatewayremoteCorpusId'
components:   parameters:
    corpusCatServerId CorpusCatServer:
      nametype: cat.server.idobject
      inrequired:
query       description: |- id
       The ID- oftype
the CAT server the corpus is associatedproperties:
with.       schema:    id:
    type: number     $ref: '#/components/schemas/catToolServerId'
  example: 10     corpusIdInPathtype:
      name: corpusId   $ref: '#/components/schemas/catToolServerType'
  description: Corpus IDCorpusCollection:
      intype: pathobject
      required:
true       schema: - data
      type: string - meta
      exampleproperties:
5b04a7263fa509.a4444794     engineId:   data:
   name: engine_id       intype: queryarray
      description: |   items:
     Engine ID for filtering.    $ref: '#/components/schemas/Corpus'
    Examples: `1`, `2`   meta:
   schema:         $ref: '#/components/schemas/engineIdCollectionMetadata'
    engineIdsCorpusContent:
      nametype: engine_idsobject
      inrequired: query

     description: |  -  data
    One or more engine ID(s) for filtering, comma-separated. meta
        Examplesproperties:
`1`, `1,3,5`       schemadata:
          oneOftype: array
         - typeitems:
integer           - type: object
string     groupIds:       namerequired:
group_ids         in: query    - id
 description: |         One or more group ID(s) for filtering, comma-separated.- content
            Examplesproperties:
  `1`, `1,3,5`       schema:    id:
    oneOf:           - type: integerstring
               - typeexample: "1"
 string       style: form       explodenullable: true
  false     languageUsage:       namecontent:
usage        in: query       descriptiontype: |object
            Filter for languages used inrequired:
Globalese.          Optionally, the `:source` or `:target` modifier may be appended- tosource
the parameter value to filter for languages used on the source or target language side only.   - target
     `usage=engines:source` will return a list of languages used as engine source languages.properties:
         `usage=engines` will return a list of languages used as enginesource:
languages, either source or target.       schema:         type: string
        enum:           -target:
engines     limit:       name: limit       intype: querystring
      description: | meta:
       Limit for results. *May* be used together with `offset`.
 $ref: '#/components/schemas/CollectionMetadata'
    CorpusCounts:
        Examplestype: `25`,object
`50`       schemarequired:
        type: integer- segment_count
    limitMax100:    -   name: limitsource_word_count
        in: query- target_word_count
      description: | - source_character_count
      Limit for results. It cannot be greater than 100. *May* be used together with `offset`.- target_character_count
      properties:
        segment_count:
    Examples: `25`, `50`    type: integer
    If not provided, it will automatically beexample: set145952
to 100.       schema:source_word_count:
          type: integer
     metadataClient:     example: 2819806
name: metadata.client       in: querytarget_word_count:
          descriptiontype: |integer
        Client metadata descriptor.example: 3120176
        Examplessource_character_count:
 `Very Important Client`       schematype: integer
        type  example: string24235334
    metadataDescription:    target_character_count:
  name: metadata.description       intype: queryinteger
      description: |   example: 29194748
    DescriptionCorpusEvent:
metadata descriptor.     allOf:
    Examples: `used for 2018 campaign`- $ref: '#/components/schemas/Event'
    schema:    - type: object
  type: string     metadataDomain:  properties:
    name: metadata.domain       inresource_id:
query       description: |      $ref: '#/components/schemas/corpusId'
 Domain metadata descriptor.          Examplestype:
`legal`       schema:
        type: string
    metadataProject:       name: metadata.project  enum:
    in: query       description: |   - uploaded
    Project metadata descriptor.          Examples:- `0192updated
EC Project`       schema:         type: string- new_version_uploaded
     metadataSubjectCorpusEventCollection:
      nametype: metadata.subjectobject
      inrequired:
query       description: |- data
       Subject metadata- descriptor.meta
      properties:
  Examples: `EU treaties`    data:
  schema:         type: array
     string     numericalIdsitems:
      name: ids     $ref:  in: query'#/components/schemas/CorpusEvent'
        descriptionmeta:
|         One or more ID(s) for filtering, comma-separated.$ref: '#/components/schemas/CollectionMetadata'
    corpusFormat:
      Examplestype: `3`,string
`3,4`       schemaenum:
        type: string- csv-comma
      style: form - csv-memoq
    explode: false   - csv-semicolon
offset:       name: offset- tmx
     in: query  - tbx
   description: |    - tsv
   Offset to start query from. **Must** be used together with `limit`. - xliff
        - xliff-memoq
   Examples: `50`, `100`   - xliff-memsource
  schema:      - xliff-sdl
 type: integer     sourceLanguage: - xliff-smartcat
    name: source_language   - xliff-translate5
  in: query     - xliff-wordbee
description: |       - xliff-xtm
Source language.   corpusGroupIds:
      Examplestype: `en`,array
`fr`      description: schema:|
        type:Cannot stringbe empty.
   stringIds:     A corpus name:must idsalways be assigned to at least one in:group.
query       descriptionitems:
|        type: Oneinteger
or more ID(s) for filtering, comma-separated. example: [ 1, 3 ]
    ExamplescorpusId:
`5b04a7263fa509.a4444794`, `5b04a7263fa509.a4444794,5b0412363fa5c1.a4354792`       schemadescription: Corpus ID
      type: string
      styleexample: form5a0ba1267f0571.04642701
     CorpusMetadata:
explode: false     targetLanguagetype: object
      nameproperties:
target_language        indomain:
query       description: |  type: string
     Target language.    nullable: true
    Examples: `en`, `fr`    example: legal
 schema:       subject:
 type: string   requestBodies:     CreateCorpustype: string
     content:     nullable: true
  multipart/form-data:        example: EU treaties
schema:        client:
    $ref: '#/components/schemas/CreateCorpus'     CreateEngineInstancetype: string
     required: true    nullable: true
 content:         application/jsonexample: Very Important Client
        schemaproject:
            type: objectstring
          nullable: true
required:          example: 0192 EC Project
 - engine_id      description:
        - dispatcher_id type: string
          propertiesnullable: true
             engine_idexample: created by DGT
    corpusName:
      type: string
$ref: '#/components/schemas/engineId'     example: English to German DGT.tmx
     dispatcher_idCorpusVersion:
      type: object
      required:
 $ref: '#/components/schemas/dispatcherId'     UpdateCorpus: - version
    content:    - counts
   application/json:     - engine_ids
    schema:     - timestamps
      $refproperties:
'#/components/schemas/UpdateCorpus'     UpdateCorpusContent:   version:
   content:         multipart/form-data:$ref: '#/components/schemas/corpusVersion'
          schemacounts:
            $ref: '#/components/schemas/UpdateCorpusContentCorpusCounts'
   responses:     204NoContentengine_ids:
      description: No Content  $ref: '#/components/schemas/CorpusVersionEngineIds'
 400BadRequest:       descriptiontimestamps:
  Bad Request       content$ref: '#/components/schemas/CorpusVersionTimestamps'
    corpusVersion:
  application/json:    description: The version of the corpus
 schema:     type: integer
      $refexample: '#/components/schemas/Error'1
    401UnauthorizedCorpusVersionCollection:
      descriptiontype: Unauthorizedobject
      contentrequired:
        application/json:- data
        - meta
schema:      properties:
        $refdata:
'#/components/schemas/Error'      403Forbidden:    type: array
 description: Insufficient permissions       contentitems:
        application/json:    $ref: '#/components/schemas/CorpusVersion'
     schema:   meta:
          $ref: '#/components/schemas/Error'
    404NotFound:/CollectionMetadata'
      descriptionCorpusVersionEngineIds: Resource
not found     422UnprocessableEntitytype: object
      descriptionrequired:
Unprocessable entity     500InternalServerError:  - trained
   description: Internal server error while processing- thetuned
request       contentproperties:
        application/jsontrained:
          schematype: array
           $refitems:
'#/components/schemas/Error'     502BadGateway:       descriptiontype: integer
 Bad Gateway   securitySchemes:     bearerexample: [ 2, 8, 14  ]
type: http       schemetuned: bearer
      description: API key   schemastype: array
   catToolServerId:       descriptionitems:
CAT tool server ID in Globalese       type: integer
          example: 10 [ 2, 8, 14 ]
    catToolServerTypeCorpusVersionTimestamps:
      type: stringobject
      enumrequired:
        - memoqcreated_at
      properties:
 - memsource      created_at:
  - smartcat       $ref:  - xtm'#/components/schemas/createdAt'
      CollectionMetadataCreateCorpus:
      type: object
      required:
        - countsfile
      properties:  - format
     counts:   - group_ids[]
      typeproperties:
object        file:
  required:        type: object
   - total    format:
        - filtered $ref: '#/components/schemas/corpusFormat'
        propertiesgroup_ids[]:
          $ref: '#/components/schemas/groupId'
 total:       source_language:
          description: The total number of resources in the system, irrespective of any filters.$ref: '#/components/schemas/sourceLanguage'
        target_language:
          $ref: '#/components/schemas/targetLanguage'
     type: integer  metadata[domain]:
          type: string
example: 100         example: legal
  filtered:      metadata[subject]:
        description: The numbertype: ofstring
resources in the system matching the filters.    example: EU treaties
        typemetadata[client]:
integer          type: string
    example: 40     Corpusexample: Very Important Client
   type: object    metadata[project]:
  required:        type: -string
id         - actionsexample: 0192 EC   Project
   - cat    metadata[description]:
    - counts     type: string
  - engines       example: created -by formatDGT
    CreateEngine:
   - groups  type: object
     - metadatarequired:
        - name
        - source_language
        - target_language
        - versiongroup_id
       properties: - resources
      idproperties:
        name:
 $ref: '#/components/schemas/corpusId'        type: actions:string
          $refexample: '#/components/schemas/CorpusActions' Engine 1
        catsource_language:
          $ref: '#/components/schemas/CorpusCatsourceLanguage'
        countstarget_language:
          $ref: '#/components/schemas/CorpusCounts'
        engine_ids:
          type: array
 targetLanguage'
        itemsgroup_id:
          $ref:  type: integer'#/components/schemas/groupId'
        resources:
   example: [ 2, 8, 14 ]  $ref: '#/components/schemas/CreateEngineResources'
     formatCreateEngineResources:
      type: object
  $ref: '#/components/schemas/corpusFormat'   required:
     group_ids:   - corpus_ids
      $ref: '#/components/schemas/corpusGroupIds'properties:
        metadatacorpus_ids:
          $ref: '#/components/schemas/CorpusMetadataCreateEngineResourcesCorpusIds'
        namestock_corpora:
          $reftype: '#/components/schemas/corpusName' boolean
          source_languagedescription: Whether or not to use available stock corpora for training $ref: '#/components/schemas/sourceLanguage'the engine.
        targetstock_engine_languageid:
          $ref: '#/components/schemas/targetLanguagenullableStockEngineId'
    CreateEngineResourcesCorpusIds:
   version:   type: object
      $ref: '#/components/schemas/corpusVersion'required:
     CorpusActions:   - core
  type: object   properties:
   description: An object describing the actionscore:
possible against a corpus.       requiredtype: array
       -  delete items:
       - update    type: string
 properties:         delete:
 example: [ '51fc7ea3fa889.b0027797', '54018363fa5c1.044227af' ]
        typeauxiliary:
boolean          updatetype: array
          typeitems:
boolean     CorpusCat:       type: objectstring
          nullableexample: true
 [ '5b04a7263fa509.77444794', '5b0412363fa5c1.c4354792' ]
    descriptioncreatedAt:
|      description: Created timestamp in IfISO the8601 corpusformat
was created by retrieving a CAT tooltype: serverstring
corpus, this object contains relevant information. example: "2017-08-30T04:34:26+00:00"
    requireddispatcherId:
      description:  Segment-based corpustranslation dispatcher ID
      -type: serverinteger
      propertiesexample: 1
    dispatcherRegion:
   corpus:   type: string
      $refexample: '#/components/schemas/CorpusCatCorpus'"europe-west1"
    dispatcherUrl:
   server:   type: string
      $refexample: '#"https:/components/schemas/CorpusCatServer'/dispatcher-europe-west1-ja6vheawuq-ew.a.run.app"
    CorpusCatCorpusEngine:
      type: object
      required:
        - id
      properties:  - actions
     id:   - counts
        $ref: '#/components/schemas/remoteCorpusId'- group_id
    CorpusCatServer:    - health
 type: object      - required:instance_ids
        - idname
        - typepublished
       properties: - source_language
      id:  - status
       $ref: '#/components/schemas/catToolServerId'
 - stock_corpora
       type: - stock_engine_id
        $ref: '#/components/schemas/catToolServerType'- target_language
    CorpusCollection:    - uuid
 type: object      - required:version
      properties:
 - data      id:
  - meta       properties$ref: '#/components/schemas/engineId'
       data actions:
          type$ref: array'#/components/schemas/EngineActions'
          itemscounts:
 
          $ref: '#/components/schemas/CorpusEngineCounts'
        metagroup_id:
          $ref: '#/components/schemas/CollectionMetadatagroupId'
    CorpusContent:    health:
  type: object       requiredtype: string
       - data  nullable: true
     - meta    enum:
  properties:         data: - current
        type: array   - deprecated
      items:      - supported
     type: object  instance_ids:
          requiredtype: array
          items:
  - id         $ref: '#/components/schemas/numericalId'
     - content  name:
          propertiestype: string
          example: Engine 1
  id:      published:
          type: string boolean
          example: true
        source_language:
   example: "1"      $ref: '#/components/schemas/sourceLanguage'
         nullablestatus:
true          $ref: '#/components/schemas/engineStatus'
   content:      stock_corpora:
          type: objectboolean
          example: true
    required:    stock_engine_id:
          $ref: '#/components/schemas/nullableStockEngineId'
  - source     target_language:
          $ref: '#/components/schemas/targetLanguage'
 - target      uuid:
          properties:$ref: '#/components/schemas/uuid'
        version:
         source type: string
          nullable: true
        type  example: string3.5.5
    EngineActions:
      type: object
      targetdescription: An object describing the actions possible against an engine.
      required:
     type:  string - delete
      meta:  - deploy
       $ref: '#/components/schemas/CollectionMetadata' - train
    CorpusCounts:    - translate
 type: object      - required:tune
        - segment_countupdate
      properties:
  - source_word_count     delete:
   - target_word_count      type: boolean
 - source_character_count      deploy:
  - target_character_count       propertiestype: boolean
       segment_count train:
          type: integer boolean
        translate:
          exampletype: 145952boolean
        source_word_counttune:
          type: integerboolean
        update:
  example: 2819806       type: boolean
target_word_count:    EngineCollection:
      type: integerobject
      required:
   example: 3120176    - data
   source_character_count:      - meta
   type: integer  properties:
        exampledata:
24235334          target_character_counttype: array
         type items:
  integer          $ref: '#/components/schemas/Engine'
  example: 29194748     CorpusEventmeta:
   
  allOf:         - $ref: '#/components/schemas/EventCollectionMetadata'
    EngineCorpora:
   -   type: object
      description: An engine cannot properties:contain more than 500 corpora in total.
      resource_id:required:
        - core
        - auxiliary
  $ref: '#/components/schemas/corpusId'     - stock
      typeproperties:
        auxiliary:
     type:  string   type: array
          enumitems:
            $ref: '#/components/schemas/EngineCorpusIdWithVersion'
  - uploaded     core:
          type: -array
updated          items:
      - new_version_uploaded     CorpusEventCollection:$ref: '#/components/schemas/EngineCorpusIdWithVersion'
        typestock:
   object       requiredtype: boolean
    EngineCorpusIdWithVersion:
  - data   type: object
    -  metarequired:
      properties:  - id
     data:   - version
      typeproperties: array

         itemsid:
 
          $ref: '#/components/schemas/CorpusEventcorpusId'
        metaversion:
          $ref: '#/components/schemas/CollectionMetadatacorpusVersion'
    corpusFormatEngineCounts:
      type: stringobject
      enumrequired:
        - csv-commacorpora
      properties:
        corpora:
     - csv-memoq    type: object
   - csv-semicolon      required:
  - tmx         - core
tbx            - tsvauxiliary
          properties:
 -   xliff        core:
- xliff-memoq         - xliff-memsource   type: object
    - xliff-sdl         -properties:
xliff-smartcat         - xliff-translate5      segment_count:
  - xliff-wordbee         - xliff-xtm     corpusGroupIds:type: number
          type: array  auxiliary:
              descriptiontype: | object
              Cannotproperties:
be empty.         A corpus must always be assigned tosegment_count:
at least one group.       items:         type: number
integer    EngineEvent:
  example: [ 1, 3 ]allOf:
    corpusId:    - $ref:  description: Corpus ID'#/components/schemas/Event'
        - type: object
 string         exampleproperties:
5a0ba1267f0571.04642701     CorpusMetadata:       typeerror_code:
object       properties:       $ref:  domain:'#/components/schemas/errorCode'
            typeresource_id:
string           nullable: true  $ref: '#/components/schemas/engineId'
       example: legal    type:
    subject:           type: string
          nullable: true   enum:
       example: EU treaties       - created
 client:           type: string   - deleted
      nullable: true         - instance_deployment_failed
example: Very Important Client         project:    - instance_deployment_finished
     type: string           nullable: true- instance_deployment_started
           example: 0192 EC Project  - instance_removal_failed
     description:           type: string- instance_removal_finished
          nullable: true     - instance_removal_started
    example: created by DGT     corpusName:    - instance_removal_started_by_billing
 type: string       example: English to German DGT.tmx   - published
CorpusVersion:       type: object       required: - stock_engine_removed
      - version         - countstraining_cancelled
        - engine_ids       - training_failed
- timestamps       properties:        - version:training_finished
          $ref: '#/components/schemas/corpusVersion'     - training_started
  counts:           $ref: '#/components/schemas/CorpusCounts'  - tuning_failed
     engine_ids:           $ref: '#/components/schemas/CorpusVersionEngineIds'- tuning_finished
        timestamps:        - tuning_started
 $ref: '#/components/schemas/CorpusVersionTimestamps'     corpusVersion:       description: The version- ofunpublished
the corpus       type: integer       example:- 1updated
    CorpusVersionCollectionEngineEventCollection:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CorpusVersionEngineEvent'
        meta:
          $ref: '#/components/schemas/CollectionMetadata'
    CorpusVersionEngineIdsengineId:
      typedescription: Engine objectID
      requiredtype: integer
       - trained
        - tuned
      propertiesexample: 10
       trained:
   EngineInstance:
      type: arrayobject
          itemsrequired:
        - id
  type: integer     - engine_id
    example: [ 2, 8, 14- ]dispatcher_url
        tuned:- status
         typeproperties:
array           itemsid:
            type: integer
          example: [ 2, 8, 14 ]$ref: '#/components/schemas/numericalId'
        CorpusVersionTimestampsengine_id:
      type: object   $ref: '#/components/schemas/engineId'
  required:      dispatcher_url:
  - created_at       properties:$ref: '#/components/schemas/dispatcherUrl'
        created_atstatus:
          $ref: '#/components/schemas/createdAtengineInstanceStatus'
    CreateCorpusEngineInstanceCollection:
      type: object
      required:
        - filedata
        - format meta
      properties:
        data:
- group_ids[]          propertiestype: array
        file  items:
           type $ref: object'#/components/schemas/EngineInstance'
        formatmeta:
          $ref: '#/components/schemas/corpusFormat'CollectionMetadata'
    engineInstanceStatus:
      type: string
      enum:
        - deploying
  group_ids[]:      - error_removal_engine_manager_internal_error
        -  $ref: '#/components/schemas/groupId'error_removal_engine_manager_rejected_request
        -  sourceerror_language:removal
        - on
$ref: '#/components/schemas/sourceLanguage'       - queued
target_language:        - removing
 $ref: '#/components/schemas/targetLanguage'  EngineResources:
      metadata[domain]type: object
      required:
  type: string     - corpora
    example: legal   - stock_engine
    metadata[subject]:  properties:
        typecorpora:
string           example$ref: EU treaties'#/components/schemas/EngineResourcesCorpora'
         metadata[client]stock_engine:
          type: string$ref: '#/components/schemas/StockEngine'
    EngineResourcesCorpora:
      exampletype: Veryobject
Important Client         metadata[project]required:
        - current
type: string       - trained
  example: 0192 EC Project   - tuned
    metadata[description]:  properties:
        typecurrent:
string           example: created by DGT$ref: '#/components/schemas/EngineCorpora'
        createdAttrained:
      description:  Created timestamp in ISO 8601 format$ref: '#/components/schemas/EngineCorpora'
        typetuned:
string         example: "2017-08-30T04:34:26+00:00"
 type: array
   dispatcherId:       descriptionitems:
Segment-based translation dispatcher ID       type: integer $ref: '#/components/schemas/EngineCorpusIdWithVersion'
    exampleengineStatus:
 1     dispatcherRegiontype: string
     type enum:
string       example: "europe-west1" changed
   dispatcherUrl:     - error
type: string       example: "https://dispatcher-europe-west1-ja6vheawuq-ew.a.run.app"- queued
    Engine:    - trained
 type: object      - required:training
        - idtuned
        - group_idtuning
        - instance_ids untrained
    Error:
      type: object
- name     properties:
   - source_language    error:
    - target_language     type: string
  - uuid       propertiesexample: "Error message."
      idrequired:
        - error
$ref: '#/components/schemas/engineId'    errorCode:
      group_idtype: integer
      nullable: true
  $ref: '#/components/schemas/groupId'   example: 104
    instance_idsEvent:
      type: object
  type:  array  required:
        items:- id
        - resource_id
 $ref: '#/components/schemas/numericalId'      - timestamp
 name:       - type
  type: string     - user
    example: Engine 1properties:
        source_languageid:
          $ref: '#/components/schemas/sourceLanguagenumericalId'
        target_languagetimestamp:
          $ref: '#/components/schemas/targetLanguagetimestamp'
        uuiduser:
          $ref: '#/components/schemas/engineUuidEventUser'
    EngineCollectionEventUser:
      type: object
      nullable: true
      required:
        - dataid
        - metaname
      properties:
        dataid:
          type$ref: array'#/components/schemas/userId'
          itemsname:
 
          $ref: '#/components/schemas/EngineuserName'
    Group:
      metatype: object
      required:
   $ref: '#/components/schemas/CollectionMetadata'     - id
engineId:       description: Engine- IDname
      typeproperties:
 integer       exampleid:
    10      EngineInstance:$ref: '#/components/schemas/groupId'
      type  name:
  object        requiredtype: string
       - id   example: Default
    GroupCollection:
   - engine_id  type: object
     - dispatcher_urlrequired:
        - statusdata
      properties:
        iddata:
          $reftype: '#/components/schemas/numericalId'array
          engine_iditems:
            $ref: '#/components/schemas/engineIdGroup'
        dispatcher_urlgroupId:
          $refdescription: '#/components/schemas/dispatcherUrl'
Group ID
       statustype: integer
         $refexample: '#/components/schemas/engineInstanceStatus'2
    EngineInstanceCollectionLanguage:
      type: object
      required:
        - dataid
      properties:
 - meta       propertiesid:
        data:  type: string
       type: array  example: en-us
    LanguageCollection:
  items:    type: object
       $refrequired:
'#/components/schemas/EngineInstance'        - meta:data
        - meta
$ref: '#/components/schemas/CollectionMetadata'     engineInstanceStatusproperties:
      type  data:
string       enum:   type: array
    - deploying     items:
   - error_removal_engine_manager_internal_error         - error_removal_engine_manager_rejected_request$ref: '#/components/schemas/Language'
        -meta:
error_removal         - on
$ref: '#/components/schemas/CollectionMetadata'
    nullableStockEngineId:
  - queued   description: Stock engine ID
  - removing   nullable: true
engineUuid:
      type: stringinteger
      example: "21cfda50-1944-46fc-901c-04a168ea6fee"23
    ErrornumericalId:
      typedescription: objectID
      propertiestype: integer
       errorexample: 10
    remoteCorpusId:
    type: string description: The ID of the corpus on the CAT  example: "Error message."tool server.
      requiredoneOf:
        - errortype: number
   Event:     -  type: objectstring
      required:
        - idexample: "a6fd0c40-7b5c-48bf-89c2-629417b398cd"
    RemoteDispatcherCollection:
    - resource_id  type: object
     - timestamprequired:
        - typedata
        - usermeta
      properties:
        iddata:
          $reftype: '#/components/schemas/numericalId'array
          timestampitems:
            $ref: '#/components/schemas/timestampRemoteDispatcher'
        usermeta:
          $ref: '#/components/schemas/EventUserCollectionMetadata'
    EventUserRemoteDispatcher:
      type: object
 
    nullable: true       required:
        - id
        - nameregion
      properties:  - url
     id:   - timestamps
      $ref: '#/components/schemas/userId'properties:
        nameid:
          $ref: '#/components/schemas/userNamedispatcherId'
    Group:    region:
  type: object       required$ref: '#/components/schemas/dispatcherRegion'
       - idurl:
        - name $ref: '#/components/schemas/dispatcherUrl'
    properties:         idtimestamps:
          $ref: '#/components/schemas/groupIdRemoteDispatcherTimestamps'
        name:
 RemoteDispatcherTimestamps:
        type: stringobject
          example: Default
    GroupCollectionrequired:
      type: object -   created_at
  required:         - dataupdated_at
      properties:
        datacreated_at:
          type$ref: array'#/components/schemas/createdAt'
          itemsupdated_at:
            $ref: '#/components/schemas/GroupupdatedAt'
    groupIdsourceLanguage:
      description: Source Grouplanguage IDcode
      type: integerstring
      example: 2en-us
    LanguageStockEngine:
      type: object
      required:
        - id
      properties:         id:
          type: string- source_language
          example: en-us
    LanguageCollection:
      type: object
      required: target_language
          - dataversion
        - metatimestamps
      properties:
        dataid:
          type$ref: array'#/components/schemas/stockEngineId'
          items:
 source_language:
          $ref: '#/components/schemas/LanguagesourceLanguage'
        metatarget_language:
          $ref: '#/components/schemas/CollectionMetadatatargetLanguage'
    numericalId:    version:
  description: ID       type: integerstring
      example: 10     remoteCorpusIdexample: 4.1.0
     description: The ID oftimestamps:
the corpus on the CAT tool server.    $ref: '#/components/schemas/StockEngineTimestamps'
 oneOf:   stockEngineId:
     - typedescription: numberStock engine ID
      - type: stringinteger
      example: "a6fd0c40-7b5c-48bf-89c2-629417b398cd"5
    RemoteDispatcherCollectionStockEngineTimestamps:
      type: object
      required:
        - data
   created_at
    - meta       properties:
        datacreated_at:
          type$ref: array'#/components/schemas/createdAt'
          itemsupdated_at:
            $ref: '#/components/schemas/RemoteDispatcherupdatedAt'
    targetLanguage:
      metadescription: Target language code
       $ref: '#/components/schemas/CollectionMetadata'type: string
      example: it
    RemoteDispatchertimestamp:
      type: objectdescription: Timestamp in ISO 8601 format
      requiredtype: string
      example: "2020-06- id06T10:45:00+00:00"
    UpdateCorpus:
      -type: regionobject
      properties:
 - url      name:
  - timestamps       properties$ref: '#/components/schemas/corpusName'
       id group_ids:
          $ref: '#/components/schemas/dispatcherIdcorpusGroupIds'
        regionmetadata:
          $ref: '#/components/schemas/dispatcherRegionCorpusMetadata'
    UpdateCorpusContent:
     url type: object
      required:
  $ref: '#/components/schemas/dispatcherUrl'     - file
  timestamps:    properties:
      $ref: '#/components/schemas/RemoteDispatcherTimestamps'
 file:
   RemoteDispatcherTimestamps:       type: object
    updatedAt:
     required:
   description: Updated timestamp in ISO 8601 format
     - created_attype: string
      nullable: -true
updated_at       properties:
 example: "2017-08-30T04:34:26+00:00"
    UpdateEngine:
      created_attype: object
      properties:
      $ref: '#/components/schemas/createdAt'  name:
          updated_attype: string
          $refexample: '#/components/schemas/updatedAt'
Engine 1
   sourceLanguage:     published:
 description: Source language code       type: stringboolean
          example: en-us true
        targetLanguageresources:
      description: Target language code $ref: '#/components/schemas/UpdateEngineResources'
    typeUpdateEngineResources:
string      type: example:object
 it     timestampproperties:
        descriptioncorpus_ids:
Timestamp in ISO 8601 format       type: string$ref: '#/components/schemas/UpdateEngineResourcesCorpusIds'
       example: "2020-06-06T10:45:00+00:00"
 stock_corpora:
   UpdateCorpus:       type: objectboolean
       properties:   description: Whether or not to use name:available stock corpora for training the engine.
    $refUpdateEngineResourcesCorpusIds:
'#/components/schemas/corpusName'      type: object
    group_ids:  properties:
        $refcore: '#/components/schemas/corpusGroupIds'
          metadatatype: array
         $ref items:
'#/components/schemas/CorpusMetadata'     UpdateCorpusContent:       type: objectstring
      required:    example: [ '51fc7ea3fa889.b0027797', '54018363fa5c1.044227af' ]
- file       propertiesauxiliary:
        file  type: array
         type: object items:
            updatedAttype: string
      description: Updated timestamp in ISOexample: 8601 format
 [ '5b04a7263fa509.77444794', '5b0412363fa5c1.c4354792' ]
    typeuserId:
string       nullabletype: trueinteger
      example: "2017-08-30T04:34:26+00:00"5
    userIduserName:
      type: integerstring
      example: 5John Doe
    userNameuuid:
      type: string
      example: John Doe"21cfda50-1944-46fc-901c-04a168ea6fee"