{
  "openapi": "3.0.0",
  "info": {
    "description": "Welcome to Phrase's TMS API documentation. \n\n Please visit our [help center](https://support.phrase.com/hc/en-us/sections/5709662083612) for more information about the APIs. \n\n If you have any questions, please contact [Support](https://support.phrase.com/hc/requests/new). \n\n Please, include the `User-Agent` header with the name of your application or project. It might be a good idea to include some sort of contact information as well, so that we can get in touch if necessary. Examples of excellent `User-Agent` headers:\n > User-Agent: Example mobile app (example@phrase.com) <br/> User-Agent: ACME Inc Java 1.8 Client (http://acmeinc.com/contact)",
    "version": "Latest",
    "title": "Phrase TMS API"
  },
  "tags": [
    {
      "name": "Additional Workflow Step"
    },
    {
      "name": "Analysis"
    },
    {
      "name": "Async Request"
    },
    {
      "name": "Authentication"
    },
    {
      "name": "Automations"
    },
    {
      "name": "Bilingual File"
    },
    {
      "name": "Business Unit"
    },
    {
      "name": "Buyer"
    },
    {
      "name": "Client"
    },
    {
      "name": "Connector"
    },
    {
      "name": "Conversations"
    },
    {
      "name": "Cost Center"
    },
    {
      "name": "Custom Fields"
    },
    {
      "name": "Custom File Type"
    },
    {
      "name": "Domain"
    },
    {
      "name": "Due Date Scheme"
    },
    {
      "name": "Email Template"
    },
    {
      "name": "File"
    },
    {
      "name": "Glossary"
    },
    {
      "name": "Import settings"
    },
    {
      "name": "Job"
    },
    {
      "name": "Language AI"
    },
    {
      "name": "Language Assets"
    },
    {
      "name": "Language Quality Assessment"
    },
    {
      "name": "Machine Translation"
    },
    {
      "name": "Machine Translation Settings"
    },
    {
      "name": "Mapping"
    },
    {
      "name": "Metabase"
    },
    {
      "name": "Net Rate Scheme"
    },
    {
      "name": "Notifications"
    },
    {
      "name": "Price List"
    },
    {
      "name": "Project"
    },
    {
      "name": "Project Template"
    },
    {
      "name": "Provider"
    },
    {
      "name": "Quality Assurance"
    },
    {
      "name": "Quality Profile"
    },
    {
      "name": "Quote"
    },
    {
      "name": "Reference File"
    },
    {
      "name": "Segment"
    },
    {
      "name": "Segmentation Rules"
    },
    {
      "name": "Service"
    },
    {
      "name": "Setup"
    },
    {
      "name": "Spell Check"
    },
    {
      "name": "SubDomain"
    },
    {
      "name": "Supported Languages"
    },
    {
      "name": "Term Base"
    },
    {
      "name": "Translation"
    },
    {
      "name": "Translation Memory"
    },
    {
      "name": "User"
    },
    {
      "name": "User Profile"
    },
    {
      "name": "Vendor"
    },
    {
      "name": "Webhook"
    },
    {
      "name": "Workflow Step"
    },
    {
      "name": "Workflow changes"
    },
    {
      "name": "XML Assistant"
    }
  ],
  "security": [
    {
      "ApiToken": []
    },
    {
      "OAuth2": []
    }
  ],
  "paths": {
    "/api2/v1/additionalWorkflowSteps": {
      "get": {
        "tags": [
          "Additional Workflow Step"
        ],
        "summary": "List additional workflow steps",
        "description": "Accessible to ADMIN and PROJECT_MANAGER roles.",
        "operationId": "listAWFSteps",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Name of the additional workflow step to filter",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionalWorkflowStepPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Additional Workflow Step"
        ],
        "summary": "Create additional workflow step",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the setup-server access right. The name must be unique within the organization.\n\nAdditional workflow steps represent optional custom service steps (e.g. DTP, engineering, voice-over) that can be attached to quotes. Once created, a step is referenced by name in the `additionalSteps` field when creating or updating a quote via the Quotes API, and appears in the `additionalSteps` array of the quote response.",
        "operationId": "createAWFStep",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdditionalWorkflowStepRequestDtoV1"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdditionalWorkflowStepDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/additionalWorkflowSteps/{id}": {
      "delete": {
        "tags": [
          "Additional Workflow Step"
        ],
        "summary": "Delete additional workflow step",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the setup-server access right.",
        "operationId": "deleteAWFStep",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the additional workflow step",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/bulk": {
      "delete": {
        "tags": [
          "Analysis"
        ],
        "summary": "Delete analyses (batch)",
        "description": "When purge is true the analyses are permanently (hard) deleted. Requires the DELETE analysis right (internal users).",
        "operationId": "bulkDeleteAnalyses",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeleteAnalyseDtoV1"
              }
            }
          },
          "description": "Analyses to delete",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/byLanguages": {
      "post": {
        "tags": [
          "Analysis"
        ],
        "summary": "Create analyses by languages",
        "description": "Creates one analysis per target language (analyzeByLanguage) for the supplied jobs. Requires the CREATE analysis right (internal users).",
        "operationId": "createAnalysesForLangs",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateAnalyseListAsyncDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAnalyseListResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/byProviders": {
      "post": {
        "tags": [
          "Analysis"
        ],
        "summary": "Create analyses by providers",
        "description": "Creates one analysis per provider (analyzeByLinguist) for the supplied jobs. Requires the CREATE analysis right (internal users).",
        "operationId": "createAnalysesForProviders",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateAnalyseListAsyncDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAnalyseListResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/recalculate": {
      "post": {
        "tags": [
          "Analysis"
        ],
        "summary": "Recalculate analysis",
        "description": "Requires the RECALCULATE analysis right (internal users).",
        "operationId": "recalculate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyseRecalculateRequestDtoV1"
              }
            }
          },
          "description": "Analyses to recalculate",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseRecalculateResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/{analyseUid}": {
      "delete": {
        "tags": [
          "Analysis"
        ],
        "summary": "Delete analysis",
        "description": "When purge is true the analysis is permanently (hard) deleted. Requires the DELETE analysis right (internal users).",
        "operationId": "delete",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purge",
            "in": "query",
            "description": "When true, the analysis is permanently (hard) deleted",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/{analyseUid}/analyseLanguageParts/{analyseLanguagePartId}": {
      "get": {
        "tags": [
          "Analysis"
        ],
        "summary": "Get analysis language part",
        "description": "Returns analysis language pair",
        "operationId": "getAnalyseLanguagePart",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "analyseLanguagePartId",
            "in": "path",
            "description": "Analysis language part ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseLanguagePartDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/{analyseUid}/analyseLanguageParts/{analyseLanguagePartId}/jobs": {
      "get": {
        "tags": [
          "Analysis"
        ],
        "summary": "List jobs of analyses",
        "description": "Returns list of job's analyses",
        "operationId": "listJobParts",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "analyseLanguagePartId",
            "in": "path",
            "description": "Analysis language part ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseJobPartPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/{analyseUid}/download": {
      "get": {
        "tags": [
          "Analysis"
        ],
        "summary": "Download analysis",
        "description": "Requires the DOWNLOAD analysis right (internal or linguist users).",
        "operationId": "downloadAnalyse",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Export format",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "CSV",
                "CSV_EXTENDED",
                "LOG",
                "JSON"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/{analyseUid}/jobs/{jobUid}": {
      "get": {
        "tags": [
          "Analysis"
        ],
        "summary": "Get jobs analysis",
        "description": "Returns job's analyse",
        "operationId": "getJobPartAnalyse",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseJobDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/analyses/{analyseUid}/netRateScheme": {
      "put": {
        "tags": [
          "Analysis"
        ],
        "summary": "Set or remove net rate scheme for analyse",
        "description": "Sets the net rate scheme of the analysis. A null netRateScheme removes the currently associated scheme. Requires the EDIT analysis right (internal users).",
        "operationId": "editNetRateScheme",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditAnalyseNetRateSchemeDtoV1"
              }
            }
          },
          "description": "Net rate scheme to set or remove",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/analyses": {
      "post": {
        "tags": [
          "Analysis"
        ],
        "summary": "Create analysis",
        "description": "Returns created analyses - batching analyses by number of segments (api.segment.count.approximation, default 100000), in case request contains more segments than maximum (api.segment.max.count, default 300000), returns 400 bad request.",
        "operationId": "createAnalyseAsyncV2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAnalyseAsyncV2DtoV2"
              }
            }
          },
          "description": "Analysis to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncAnalyseListResponseV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/analyses/bulk": {
      "put": {
        "tags": [
          "Analysis"
        ],
        "summary": "Edit analyses (batch)",
        "description": "If no netRateScheme is provided in request, then netRateScheme associated with provider will\nbe used if it exists, otherwise it will remain the same as it was.",
        "operationId": "analyses-batchEdit-v2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkEditAnalyseV2DtoV2"
              }
            }
          },
          "description": "Analyses to edit",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalysesV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/analyses/{analyseUid}": {
      "put": {
        "tags": [
          "Analysis"
        ],
        "summary": "Edit analysis",
        "description": "If no netRateScheme is provided in\nrequest, then netRateScheme associated with provider will be used if it exists, otherwise it will remain the same\nas it was.",
        "operationId": "editAnalysis",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditAnalyseV2DtoV2"
              }
            }
          },
          "description": "Analysis changes",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/analyses/{analyseUid}": {
      "get": {
        "tags": [
          "Analysis"
        ],
        "summary": "Get analysis",
        "description": "\nThis API endpoint retrieves analysis results, encompassing basic information about the analysis, such as its name,\nassigned provider,\n[net rate scheme](https://support.phrase.com/hc/en-us/articles/5709665578908-Net-Rate-Schemes-TMS-),\n[Analysis settings](https://support.phrase.com/hc/en-us/articles/5709712007708-Analysis-TMS-) settings and a subset of\n[Get project](../project/get-project) information for the project the analysis belongs to.\n\nThe analysis results consist of each analyzed language, presented as an item within the `analyseLanguageParts` array.\nEach of these items contains details regarding the analyzed\n[jobs](https://support.phrase.com/hc/en-us/articles/5709686763420-Jobs-TMS-),\n[translation memories](https://support.phrase.com/hc/en-us/articles/5709688865692-Translation-Memories-Overview)\nand the resultant data.\n\nThe analysis results are divided into two sections:\n\n- `data` stores the raw numbers,\n- `discountedData` recalculates the raw numbers using the selected net rate scheme.\n\nSimilar to the UI, both raw and net numbers are categorized based on their source into TM, MT, and NT categories,\nincluding repetitions where applicable. These categories are then further subdivided based on the match score.\n",
        "operationId": "getAnalyseV3",
        "parameters": [
          {
            "name": "analyseUid",
            "in": "path",
            "description": "Analysis UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/{jobUid}/analyses": {
      "get": {
        "tags": [
          "Analysis",
          "Job"
        ],
        "summary": "List analyses",
        "description": "Lists the analyses that have been run against this specific job, paginated.",
        "operationId": "listPartAnalyseV3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoAnalyseReferenceV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/async": {
      "get": {
        "tags": [
          "Async Request"
        ],
        "summary": "List pending requests",
        "description": "\nAPI call to return a list of pending asynchronous requests.\n\nSome operations within Phrase TMS are performed\n[asynchronously](https://support.phrase.com/hc/en-us/articles/5784117234972-Phrase-TMS-Limits#api-limits-async-requests-0-2)\nand their response only serves as an acknowledgement of receipt, not an actual completion of such request.\nSince Phrase  imposes restrictions on the number of pending asynchronous\nrequests within an organization, this API call provides the means to check the number of such\npending requests.\n\nWhen processing a large number of asynchronous operations, Phrase recommends periodically checking this list of\npending requests in order to not receive an error code during the actual processing of the requests.\n\n_Note: Only actions triggered via the APIs are counted towards this limit, the same type of operation carried out via the\nUI is not taken into account. This means that even with 200 pending requests, users can still create jobs via the UI._\n",
        "operationId": "listPendingRequests",
        "parameters": [
          {
            "name": "all",
            "in": "query",
            "description": "Pending requests for organization instead of current user. Only for ADMIN.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoAsyncRequestDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/async/status": {
      "get": {
        "tags": [
          "Async Request"
        ],
        "summary": "Get current limits",
        "description": "",
        "operationId": "getCurrentLimitStatus",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestStatusDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/async/{asyncRequestId}": {
      "get": {
        "tags": [
          "Async Request"
        ],
        "summary": "Get asynchronous request",
        "description": "\nThis API call will return information about the specified\n[asynchronous request](https://support.phrase.com/hc/en-us/articles/5709706916124-API-TMS-#asynchronous-apis-0-2).\n\nApart from basic information about the asynchronous operation such as who created it and for what action, the response\nwill contain a subset of [Get project](../project/get-project) information.\n\nThe response contains an `asyncResponse` field which will remain `null` until the async request has finished processing.\nIf any errors occurred during processing of the request, this field will contain such errors or warnings.\n\nThe `action` field identifies the type of operation. Common values relevant to the job workflow:\n- `IMPORT_JOB` — job file import, returned by [Create job](../job/create-job)\n- `PRE_TRANSLATE` — pre-translation run, returned by [Pre-translate job](../job/pre-translate-job)\n\n_Note_: It is important to keep track of the number of pending asynchronous requests as these are subject to [Phrase\nlimits](https://support.phrase.com/hc/en-us/articles/5784117234972-Phrase-TMS-Limits#api-limits-async-requests-0-2).\n",
        "operationId": "getAsyncRequest",
        "parameters": [
          {
            "name": "asyncRequestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/auth/loginWithApple/code": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login with Apple with code",
        "description": "",
        "operationId": "loginByAppleWithCode",
        "parameters": [
          {
            "name": "native",
            "in": "query",
            "description": "For sign in with code from native device",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginWithAppleDtoV1"
              }
            }
          },
          "description": "Apple authorization code",
          "required": true
        },
        "security": [
          {
            "none": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/auth/loginWithApple/refreshToken": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login with Apple refresh token",
        "description": "",
        "operationId": "loginByAppleWithRefreshToken",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginWithAppleDtoV1"
              }
            }
          },
          "description": "Apple refresh token",
          "required": true
        },
        "security": [
          {
            "none": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/auth/loginWithGoogle": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login with Google",
        "description": "",
        "operationId": "loginByGoogle",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginWithGoogleDtoV1"
              }
            }
          },
          "description": "Google ID token",
          "required": true
        },
        "security": [
          {
            "none": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/auth/logout": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Logout",
        "description": "The API token may be supplied either via the token query parameter or the Authorization header, but not both.",
        "operationId": "logout",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "description": "API token to invalidate",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "API token to invalidate, supplied via the Authorization header",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/auth/refreshAppleToken": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Refresh Apple token",
        "description": "Validates the supplied Apple refresh token and returns a refreshed Apple token response.",
        "operationId": "refreshAppleToken",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "description": "Apple refresh token",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "none": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AppleTokenResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/auth/whoAmI": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Who am I",
        "description": "Returns the currently authenticated user (the current user), including their role, username, and account details. Use this endpoint to find out who the current logged-in user is, check my role, retrieve my user profile, or look up the authenticated user. Also answers \"who am I\" for the logged-in user.",
        "operationId": "whoAmI",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginUserDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/auth/login": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login",
        "description": "The login may be rejected when the organization restricts authentication to SSO login and API token SSO enforcement is enabled for the organization.",
        "operationId": "loginV3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginV3DtoV3"
              }
            }
          },
          "description": "Login credentials",
          "required": true
        },
        "security": [
          {
            "none": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/auth/loginOther": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login as another user",
        "description": "Available only for admin. Only the owner of an account may log into accounts that belong to multiple platform organizations.",
        "operationId": "loginOtherV3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginOtherV3DtoV3"
              }
            }
          },
          "description": "User to log in as",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginResponseV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/auth/loginToSession": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Login to session",
        "description": "Logs the user into a browser session and returns a session cookie and CSRF token rather than an API token. The login is rejected when the organization restricts authentication to SSO login.",
        "operationId": "loginToSession_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginToSessionV3DtoV3"
              }
            }
          },
          "description": "Login credentials",
          "required": true
        },
        "security": [
          {
            "none": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginToSessionResponseV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "List automated project creation settings",
        "description": "",
        "operationId": "getAutomatedProjectCreationList",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomatedProjectCreationSimplePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/batch": {
      "delete": {
        "tags": [
          "Automations"
        ],
        "summary": "Delete automated project settings in batch",
        "description": "\nDeletes all automated project creation (APC) settings listed in `automatedProjectIds` and returns `204 No Content`.\n\nIf any APC still has active projects, the request fails with `400 Bad Request` unless `ignoreActiveProjects` is set to `true`. If any of the supplied identifiers does not exist, the request fails with `404 Not Found`.",
        "operationId": "deleteAutomatedProjectCreationBatch",
        "parameters": [
          {
            "name": "ignoreActiveProjects",
            "in": "query",
            "description": "When true, delete the APCs even if they still have active projects",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AutomatedProjectCreationBatchDtoV1"
              }
            }
          },
          "description": "Identifiers of the automated project creation settings to delete",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/generateWebhook": {
      "post": {
        "tags": [
          "Automations"
        ],
        "summary": "Generate run-APC webhook",
        "description": "\nMints a fresh webhook token for triggering an automated project creation (APC) run. Call with an empty body; no `apcId` or other resource reference is required or supported - the returned token is not bound to any specific APC at mint time.\n\nUse the returned `webhookToken` value as-is in the `webhookToken` field of the create/update endpoints on any API version (`/api2/v1`, `/api2/v2`, `/api2/v3`) to configure a webhook-triggered APC, then call `POST /api2/v1/automatedProjects/webhooks/{webhookToken}` to trigger a run.",
        "operationId": "getAutomatedProjectCreationWebhook",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WEBHOOK_TOKEN"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}": {
      "delete": {
        "tags": [
          "Automations"
        ],
        "summary": "Delete automated project settings",
        "description": "\nDeletes the automated project creation (APC) settings identified by `settingsId` and returns `204 No Content`.\n\nIf the APC still has active projects, the request fails with `400 Bad Request` unless `ignoreActiveProjects` is set to `true`, in which case the APC is deleted regardless of its active projects.",
        "operationId": "deleteAutomatedProjectCreation",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ignoreActiveProjects",
            "in": "query",
            "description": "When true, delete the APC even if it still has active projects",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}/checkNow": {
      "put": {
        "tags": [
          "Automations"
        ],
        "summary": "Check remote service status for automated project settings",
        "description": "\nFor a legacy APC, once the migration deadline has passed this endpoint responds with `403 Forbidden`.",
        "operationId": "checkNowAutomatedProjectCreation",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}/forceImport": {
      "put": {
        "tags": [
          "Automations"
        ],
        "summary": "Call force import for automated project settings",
        "description": "\nFor a legacy APC, once the migration deadline has passed this endpoint responds with `403 Forbidden`.",
        "operationId": "forceImportAutomatedProjectCreation",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}/historyLog": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "Get operations history for specified APC",
        "description": "\nReturns the operations history of the APC (Project Create, Status change, Job Import/Export, Source/Target update, Monitoring, and APC Create/Deactivate events) as a raw JSON object provided by the Automation Service; the response shape is not modelled in this specification.",
        "operationId": "getApcHistoryLog",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 500, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 500,
              "default": 50
            }
          },
          {
            "name": "sortAscending",
            "in": "query",
            "description": "When true, sort in ascending order",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateRangeFrom",
            "in": "query",
            "description": "Date range from, based on startedAt",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateRangeTo",
            "in": "query",
            "description": "Date range to, based on startedAt",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actionId",
            "in": "query",
            "description": "Filter by actionId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by action status",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "actionType",
            "in": "query",
            "description": "Filter by operation type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "executedBy",
            "in": "query",
            "description": "Filter by triggeredBy",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "receivedBy",
            "in": "query",
            "description": "Filter by receivedBy",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "textSearch",
            "in": "query",
            "description": "Search by text",
            "required": false,
            "example": "projectUid",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}/monitoredFolder/{encodedMonitoredFolder}/connectors/{connectorId}/folders/{encodedFolder}": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "Returns files from monitored folder",
        "description": "\nAvailable only for APCs stored on the Automation Service; otherwise the request fails with `400 Bad Request`.",
        "operationId": "listMonitoredFolders",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "encodedMonitoredFolder",
            "in": "path",
            "description": "URL-encoded path of the monitored folder",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectorId",
            "in": "path",
            "description": "Identifier of the connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "encodedFolder",
            "in": "path",
            "description": "URL-encoded path of the remote folder to list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APCMonitoredFilesResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}/running": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "Get Automated Project Creation running state",
        "description": "\nAvailable only for APCs stored on the Automation Service; otherwise the request fails with `400 Bad Request`.",
        "operationId": "getAutomatedProjectCreationRunning",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomatedProjectCreationRunningDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/automatedProjects/{settingsId}/status": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "Get Automated Project Creation status data",
        "description": "\nReturns the current status of the automated project creation (APC) identified by `settingsId`, including its last/next check times, associated projects, monitored folder statuses, and any active `warnings`.\n\nUse this endpoint to check for connector or export delivery failures on the APC: `warnings` entries of type `NEEDS_ATTENTION` whose payload includes `affectedTranslationExportsUids` or `unreachableTranslationExportsUids` indicate jobs whose translations failed to export to the connected destination (e.g. a CMS/connector).\n\nA file whose Phrase Strings source locale doesn't exactly string-match this APC's project source language (e.g. \"en-US\" vs \"en\") is silently excluded from import; a mismatch means the file will not appear in the created project. No warning is currently surfaced for this case — compare the Strings project's locale code directly against the project's source language.",
        "operationId": "getAutomatedProjectCreationDetails",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomatedProjectCreationStatusDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/automatedProjects": {
      "post": {
        "tags": [
          "Automations"
        ],
        "summary": "Create automated project settings",
        "description": "\nCreates automated project creation (APC) settings.\n\nThe request fails with `400 Bad Request` when the configuration is invalid — for example when monitored folders are duplicated, exceed the allowed limit, mix different connectors or project templates, when the connector does not support (sub)folder monitoring, when `moveToProcessedSubfolder` is set to `true` for a connector that does not support moving processed files to a subfolder, and when the translation-export configuration breaks its uniqueness or combination rules (such as more than one entry for the same trigger or workflow step). If the referenced connector cannot be found, the request fails with `404 Not Found`.",
        "operationId": "createAutomatedProjectCreation_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEditAutomatedProjectCreationV3DtoV3"
              }
            }
          },
          "description": "Automated project creation settings to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AutomatedProjectCreationV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/automatedProjects/{settingsId}": {
      "get": {
        "tags": [
          "Automations"
        ],
        "summary": "Get automated project creation settings by ID",
        "description": "\nReturns the automated project creation (APC) settings identified by `settingsId`.\n\nFor a legacy APC, once the migration deadline has passed this endpoint responds with `403 Forbidden`.",
        "operationId": "getAutomatedProjectCreation_2",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomatedProjectCreationV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Automations"
        ],
        "summary": "Update automated project settings",
        "description": "\nUpdates the automated project creation (APC) settings identified by `settingsId`.\n\nThe request fails with `400 Bad Request` when the configuration is invalid — for example when monitored folders are duplicated, exceed the allowed limit, mix different connectors or project templates, when the connector does not support (sub)folder monitoring, when `moveToProcessedSubfolder` is newly set to `true` for a connector that does not support moving processed files to a subfolder (a folder that already has `moveToProcessedSubfolder = true` persisted for such a connector may still be saved unchanged, so an unrelated edit is not blocked), when the translation-export configuration breaks its uniqueness or combination rules, or when the continuous-project option is changed after projects have already been created from this APC. If the referenced connector cannot be found, the request fails with `404 Not Found`. For a legacy APC, once the migration deadline has passed the request responds with `403 Forbidden`.",
        "operationId": "updateAutomatedProjectCreation_2",
        "parameters": [
          {
            "name": "settingsId",
            "in": "path",
            "description": "Identifier of the automated project creation settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEditAutomatedProjectCreationV3DtoV3"
              }
            }
          },
          "description": "Automated project creation settings to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AutomatedProjectCreationV3DtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/bilingualFiles": {
      "post": {
        "tags": [
          "Bilingual File"
        ],
        "summary": "Upload bilingual file",
        "description": "Uploads one or more bilingual files for a job and returns the updated job parts together with their project. Send the files as a multipart/form-data request using the `file` form field. ZIP archives are automatically expanded into the bilingual files they contain. A maximum of 50 files may be uploaded in a single request. The `saveToTransMemory` parameter controls whether confirmed segments are saved to the translation memory, and `setCompleted` marks the affected job parts as completed after the upload. Requires EDIT and EDIT_SEGMENT rights on the job. See the [MXLIFF guide](https://developers.phrase.com/en/guides/mxliff/overview) for the bilingual file format reference.",
        "operationId": "uploadBilingualFileV2",
        "parameters": [
          {
            "name": "saveToTransMemory",
            "in": "query",
            "description": "Controls whether confirmed segments are saved to the translation memory",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "All",
                "Confirmed",
                "None"
              ],
              "default": "Confirmed"
            }
          },
          {
            "name": "setCompleted",
            "in": "query",
            "description": "When true, marks the affected job parts as completed after the upload",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/BilingualFileApi2ResourceUploadBilingualFileRequestDtoV2"
              }
            }
          },
          "description": "Multipart request with files",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job_parts_affected_by_the_operation_together_with_their_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/businessUnits": {
      "get": {
        "tags": [
          "Business Unit"
        ],
        "summary": "List business units",
        "description": "Only available when the Business Units feature is enabled for the organization.",
        "operationId": "listBusinessUnits",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Unique name of the business unit",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "UID of user",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "DATE_CREATED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessUnitPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Business Unit"
        ],
        "summary": "Create business unit",
        "description": "Only available when the Business Units feature is enabled for the organization. Requires the setupServer access right. Business unit names must be unique within the organization.",
        "operationId": "createBusinessUnit",
        "requestBody": {
          "$ref": "#/components/requestBodies/BusinessUnitEditDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessUnitDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/businessUnits/{businessUnitUid}": {
      "get": {
        "tags": [
          "Business Unit"
        ],
        "summary": "Get business unit",
        "description": "Only available when the Business Units feature is enabled for the organization. Requires the setupServer access right.",
        "operationId": "getBusinessUnit",
        "parameters": [
          {
            "name": "businessUnitUid",
            "in": "path",
            "description": "UID of the business unit",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessUnitDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Business Unit"
        ],
        "summary": "Edit business unit",
        "description": "",
        "operationId": "updateBusinessUnit",
        "parameters": [
          {
            "name": "businessUnitUid",
            "in": "path",
            "description": "UID of the business unit",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/BusinessUnitEditDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BusinessUnitDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Business Unit"
        ],
        "summary": "Delete business unit",
        "description": "Deleting a business unit clears its reference from all projects, project templates, term bases, and translation memories.",
        "operationId": "deleteBusinessUnit",
        "parameters": [
          {
            "name": "businessUnitUid",
            "in": "path",
            "description": "UID of the business unit",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/buyers": {
      "get": {
        "tags": [
          "Buyer"
        ],
        "summary": "List buyers",
        "description": "",
        "operationId": "listBuyers",
        "parameters": [
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "DEFAULT_PROJECT_OWNER"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuyerPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/buyers/{buyerUid}": {
      "put": {
        "tags": [
          "Buyer"
        ],
        "summary": "Edit buyer",
        "description": "Changing the default project owner updates all project templates owned by the previous owner within this buyer's vendor organization to use the new owner.",
        "operationId": "updateBuyer",
        "parameters": [
          {
            "name": "buyerUid",
            "in": "path",
            "description": "Unique identifier of the buyer",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BuyerEditDtoV1"
              }
            }
          },
          "description": "Buyer edit request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BuyerDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/clients": {
      "get": {
        "tags": [
          "Client"
        ],
        "summary": "List clients",
        "description": "Project managers without the clientViewOther right see only clients they created.",
        "operationId": "listClients",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Unique name of the Client",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "UID of user",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "DATE_CREATED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Client"
        ],
        "summary": "Create client",
        "description": "Requires the clientCreate access right for project managers. Client names must be unique within the organization.",
        "operationId": "createClient",
        "requestBody": {
          "$ref": "#/components/requestBodies/ClientEditDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/clients/{clientUid}": {
      "get": {
        "tags": [
          "Client"
        ],
        "summary": "Get client",
        "description": "Project managers who did not create the client need the clientViewOther access right (default off) to view it.",
        "operationId": "getClient",
        "parameters": [
          {
            "name": "clientUid",
            "in": "path",
            "description": "UID of the client",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Client"
        ],
        "summary": "Edit client",
        "description": "Sending null for priceList or netRateScheme clears the existing association. Project managers who did not create the client need the clientEditOther access right (default off) to edit it.",
        "operationId": "updateClient",
        "parameters": [
          {
            "name": "clientUid",
            "in": "path",
            "description": "UID of the client",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ClientEditDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Client"
        ],
        "summary": "Delete client",
        "description": "Deleting a client also removes its contacts and business units, and clears the client reference from all projects, project templates, term bases, and translation memories. Project managers who did not create the client need the clientDeleteOther access right (default off) to delete it.",
        "operationId": "deleteClient",
        "parameters": [
          {
            "name": "clientUid",
            "in": "path",
            "description": "UID of the client",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectorAsyncTasks": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "Get Connector async task states.",
        "description": "Returns a page of connector async task states for the given project. When dateCreatedFrom/dateCreatedTo are not provided, the dateCreated window defaults to the last 24 hours (current time minus 24h) up to current time plus 1h.",
        "operationId": "getConnectorAsyncTaskStates",
        "parameters": [
          {
            "name": "projectUid",
            "in": "query",
            "description": "Filter by projectUid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskType",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "DOWNLOAD",
                  "REIMPORT",
                  "REIMPORT_TARGET",
                  "UPLOAD"
                ]
              }
            }
          },
          {
            "name": "taskProcessingType",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "APC",
                  "API",
                  "CJ",
                  "GUI",
                  "SUBMITTER_PORTAL"
                ]
              }
            }
          },
          {
            "name": "dateCreatedFrom",
            "in": "query",
            "description": "Date range from, based on dateCreated, default current time minus 24h",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateCreatedTo",
            "in": "query",
            "description": "Date range to, based on dateCreated, default current time plus 1h",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 1000, default 100",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 1000,
              "default": 100
            }
          },
          {
            "name": "dateProcessedFrom",
            "in": "query",
            "description": "Date range from, based on dateProcessed",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateProcessedTo",
            "in": "query",
            "description": "Date range to, based on dateProcessed",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorAsyncTaskStatesDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectorAuthPage/{type}": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "Get connectors' authentication page url",
        "description": "",
        "operationId": "getAuthenticationPageUrl",
        "parameters": [
          {
            "name": "type",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "hostPrefix",
            "in": "query",
            "description": "Provider subdomain prefix for connector types that need one to build the authentication URL, e.g. `mycompany` for ZENDESK type `mycompany.zendesk.com` (not a URL and not the TMS host). Not needed for other connector types.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "useGitHubApps",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "dataCenter",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthPageDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "List connectors",
        "description": "Connectors of a sunsetted type are excluded from the response and from totalCount.\nRequires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "getConnectorList",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Filter by connector type",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "AEM_PLUGIN",
                "AMAZON_S3",
                "BITBUCKET",
                "BLUEPRINT",
                "BOX",
                "BRAZE",
                "BRAZE_MULTILANG",
                "CONTENTFULENTRYLEVEL",
                "CONTENTFUL",
                "CONTENTFUL2",
                "CONTENTSTACK",
                "DRUPAL_PLUGIN",
                "FTP",
                "GIT",
                "GITHUB",
                "GITHUB2",
                "GITLAB",
                "GOOGLE",
                "GOOGLE_DRIVE2",
                "HUBSPOT",
                "JOOMLA",
                "KENTICO_KONTENT",
                "MARKETO",
                "ONEDRIVE",
                "OPTIMIZELY",
                "SHAREPOINT",
                "PARDOT",
                "PHRASE",
                "SALESFORCE",
                "SFTP",
                "SITECORE",
                "TRIDION",
                "VERBIS",
                "WORDPRESS",
                "ZENDESK"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorListDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Create connector",
        "description": "Creates a connector of the specified type.\nA connection test is run automatically for MAGENTO and TYPO3 connector types, or whenever `connectionTest=true` is passed.\nFor OAuth-based connectors (e.g. GitHub, GitLab, Google Drive, OneDrive), complete the three-step OAuth flow first:\nPOST /connectorAuthData → user authorizes → POST /connectorAuthCode. Then include the resulting `code` in the request.\nFor credential-based connectors (FTP, SFTP, GIT, Amazon S3, etc.) no OAuth flow is required.\ntype=PHRASE connects this TMS organization to Phrase Strings (Job Sync); see the phrase* request fields below.\nRequires ADMIN or PROJECT_MANAGER role with the Connector setup access right.",
        "operationId": "createConnector",
        "parameters": [
          {
            "name": "connectionTest",
            "in": "query",
            "description": "Run a connection test before creating; automatically true for MAGENTO and TYPO3",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConnectorConfigurationDto"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorCreateResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/connectorAuthCode": {
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Store connector oAuth code",
        "description": "Step 2 of 3 in the OAuth connector flow. Stores the authorization code returned by the OAuth provider.\nProvide the `state` token from POST /connectorAuthData and the `code` from the OAuth callback.\nReturns 200 if the code was stored successfully, 400 if the state token is invalid or expired.\nRequires ADMIN or PROJECT_MANAGER role with the Connector setup access right.",
        "operationId": "saveConnectorAuthCode",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectorAuthCodeDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuccessResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/connectorAuthCode/{code}": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "Retrieve connector oAuth code",
        "description": "Step 3 of 3 in the OAuth connector flow. Polls for the authorization code stored by POST /connectorAuthCode.\nUse the `state` token from POST /connectorAuthData as the `code` path parameter.\n`cancelled` is true if the user cancelled the OAuth flow. `code` is null until the OAuth provider has redirected back.\nRequires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "getConnectorAuthCode",
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "The `state` token returned by POST /connectorAuthData",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorAuthCodeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/connectorAuthData": {
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Generate connector oAuth state",
        "description": "Step 1 of 3 in the OAuth connector flow. Generates a one-time state token (returned as `state`).\nPass this token to the connector's OAuth authorization URL, then call POST /connectorAuthCode with the returned code.\nRequired for OAuth-based connector types (e.g. GitHub, GitLab, Google Drive, OneDrive).\nRequires ADMIN or PROJECT_MANAGER role with the Connector setup access right.",
        "operationId": "saveConnectorAuthData",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorAuthCodeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/testConnection/{connectorId}": {
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Test connection of existing connector.",
        "description": "Test connection for provided connector id.\nRequires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "testConnectionOfConnector",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/{connectorId}": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "Get a connector",
        "description": "Requires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "getConnector",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Connector"
        ],
        "summary": "Delete connector",
        "description": "Deletes the connector and its backend credentials. All job widget associations are removed.\nRequires ADMIN or PROJECT_MANAGER role with the Connector setup access right.\nFails with a Bad Request response if the connector is still used in automated project creation settings.",
        "operationId": "deleteConnector",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "patch": {
        "tags": [
          "Connector"
        ],
        "summary": "Patch connector",
        "description": "Partially updates connector credentials. Only fields included in the request body are changed.\nThe connector type cannot be changed; a type mismatch returns 400.\nA connection test is run for MAGENTO and TYPO3 connector types, or when `connectionTest=true` is passed.\nRequires ADMIN or PROJECT_MANAGER role with the Connector setup access right.",
        "operationId": "patchConnector",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "connectionTest",
            "in": "query",
            "description": "Run a connection test before saving; automatically true for MAGENTO and TYPO3",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConnectorConfigurationDto"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorCreateResponseDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/{connectorId}/folders": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "List files in root",
        "description": "List files in a root folder of the selected connector.\nRequires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "getRootFolder",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "query",
            "description": "UID of a project; when provided, source and target locales are read from the project",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceLocale",
            "in": "query",
            "description": "BCP 47 source locale; used when projectUid is not provided",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileType",
            "in": "query",
            "description": "Filter files by type",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "ALL|FILES_ONLY|FOLDERS_ONLY",
              "enum": [
                "ALL",
                "FILES_ONLY",
                "FOLDERS_ONLY"
              ],
              "default": "ALL"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "NAME|SIZE|LAST_MODIFIED",
              "enum": [
                "NAME",
                "SIZE",
                "LAST_MODIFIED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "ASCENDING|DESCENDING",
              "enum": [
                "ASCENDING",
                "DESCENDING"
              ],
              "default": "ASCENDING"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileListDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/{connectorId}/folders/{folder}": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "List files in a subfolder",
        "description": "List files in a subfolder of the selected connector.\nRequires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "getFolder",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "in": "path",
            "description": "Hex-encoded remote folder path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "query",
            "description": "UID of a project; when provided, source and target locales are read from the project",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceLocale",
            "in": "query",
            "description": "BCP 47 source locale; used when projectUid is not provided",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileType",
            "in": "query",
            "description": "Filter files by type",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "ALL|FILES_ONLY|FOLDERS_ONLY",
              "enum": [
                "ALL",
                "FILES_ONLY",
                "FOLDERS_ONLY"
              ],
              "default": "ALL"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "NAME|SIZE|LAST_MODIFIED",
              "enum": [
                "NAME",
                "SIZE",
                "LAST_MODIFIED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "ASCENDING|DESCENDING",
              "enum": [
                "ASCENDING",
                "DESCENDING"
              ],
              "default": "ASCENDING"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileListDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Upload a file to a subfolder of the selected connector",
        "description": "Upload a file to a subfolder of the selected connector",
        "operationId": "uploadFile",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "in": "path",
            "description": "Hex-encoded remote folder path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "multipart/form-data"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "description": "Translated file to upload",
                    "type": "string",
                    "format": "binary"
                  },
                  "sourceFileName": {
                    "description": "Name or ID of the original file",
                    "type": "string"
                  },
                  "subfolderName": {
                    "description": "Optional subfolder to upload the file to",
                    "type": "string"
                  },
                  "mimeType": {
                    "description": "Mime type of the file to upload",
                    "type": "string"
                  },
                  "commitMessage": {
                    "description": "Commit message for upload to Git, etc.",
                    "type": "string"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadResultDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/connectors/{connectorId}/folders/{folder}/files/{file}": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "Download file",
        "description": "Download a file from a subfolder of the selected connector.\nRequires ADMIN, PROJECT_MANAGER, LINGUIST, or SUBMITTER role.",
        "operationId": "getFileForConnector",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal identifier of the connector; an opaque string, not numeric",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "in": "path",
            "description": "Hex-encoded remote folder path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "file",
            "in": "path",
            "description": "Hex-encoded remote file name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponseDtoV1"
                }
              }
            }
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/connectors/{connectorId}/folders/{folder}/files/{fileName}/upload": {
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Upload file (async)",
        "description": "Upload a file to a subfolder of the selected connector. The upload is processed asynchronously; the response contains the id of the created async task, whose status can be tracked via [Get Connector async task states](../connector/get-connector-async-task-states).",
        "operationId": "uploadFileV2",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal numeric ID of the connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "in": "path",
            "description": "Hex-encoded remote folder path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fileName",
            "in": "path",
            "description": "Hex-encoded remote file name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mimeType",
            "in": "query",
            "description": "Mime type of the file to upload",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Memsource",
            "in": "header",
            "required": true,
            "example": "{\"subfolderName\":\"myFolder\",\"commitMessage\":\"add translation\",\"callbackUrl\":\"https://webhook.site/83b222a1-5cf2-48ec-b8b9-7f79bb2a25e4\"}",
            "schema": {
              "type": "string",
              "format": "application/json"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "multipart/form-data"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "description": "Translated file to upload",
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncFileOpResponseDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/connectors/{connectorId}/folders/{folder}/files/{file}": {
      "post": {
        "tags": [
          "Connector"
        ],
        "summary": "Download file (async)",
        "description": "\nCreate an asynchronous request to download a file from a (sub)folder of the selected connector. \nAfter a callback with successful response is received, prepared file can be downloaded by [Download prepared file](../connector/download-prepared-file) \nor [Create job from connector asynchronous download task](../job/create-job-from-connector-asynchronous-download-task).\n",
        "operationId": "getFileForConnectorV2",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal numeric ID of the connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "in": "path",
            "description": "Hex-encoded remote folder path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "file",
            "in": "path",
            "description": "Hex-encoded remote file name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetFileRequestParamsDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncFileOpResponseDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      }
    },
    "/api2/v2/connectors/{connectorId}/folders/{folder}/files/{file}/tasks/{taskId}": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "Download prepared file",
        "description": "Download the file by referencing successfully finished async download request [Connector - Download file (async)](../connector/download-file-async).",
        "operationId": "getPreparedFile",
        "parameters": [
          {
            "name": "connectorId",
            "in": "path",
            "description": "Internal numeric ID of the connector",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "folder",
            "in": "path",
            "description": "Hex-encoded remote folder path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "file",
            "in": "path",
            "description": "Hex-encoded remote file name",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "taskId",
            "in": "path",
            "description": "Internal numeric ID of the connector async download task",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/connectors/enabled": {
      "get": {
        "tags": [
          "Connector"
        ],
        "summary": "List enabled connector types",
        "description": "",
        "operationId": "listEnabledConnectorTypes",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "AEM_PLUGIN",
                      "AMAZON_S3",
                      "AZURE",
                      "BITBUCKET",
                      "BITBUCKETSERVER",
                      "BLUEPRINT",
                      "BOX",
                      "BRAZE",
                      "BRAZE_MULTILANG",
                      "CONFLUENCE",
                      "CONTENTFUL",
                      "CONTENTFULENTRYLEVEL",
                      "CONTENTFUL2",
                      "CONTENTSTACK",
                      "DROPBOX",
                      "DRUPAL",
                      "DRUPAL_PLUGIN",
                      "FTP",
                      "GIT",
                      "GITHUB",
                      "GITHUB2",
                      "GITLAB",
                      "GOOGLE",
                      "GOOGLE_DRIVE2",
                      "HELPSCOUT",
                      "HUBSPOT",
                      "JOOMLA",
                      "KENTICO",
                      "KENTICO_KONTENT",
                      "MAGENTO",
                      "MARKETO",
                      "ONEDRIVE",
                      "OPTIMIZELY",
                      "PARDOT",
                      "PHRASE",
                      "SALESFORCE",
                      "SFTP",
                      "SHAREPOINT",
                      "SITECORE",
                      "TRIDION",
                      "TYPO3",
                      "VERBIS",
                      "WORDPRESS",
                      "ZENDESK"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/conversations/find": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "Find all conversation",
        "description": "Returns conversations of all types across the requested jobs. Available to internal, guest and linguist users. Project managers require the EDIT right on the job; other roles require SHOW. Guests must also match the project client and have the right to view other users' projects.",
        "operationId": "findConversations",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FindConversationsDtoV1"
              }
            }
          },
          "description": "Find conversations request body",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/conversations/searchByProject": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "Search conversation by project",
        "description": "This endpoint is allowed only to PM and ADMIN roles.",
        "operationId": "searchByProject",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FindConversationsForProjectDtoV1"
              }
            }
          },
          "description": "Search conversations by project request body",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "List all conversations",
        "description": "Returns conversations of all types for the given job. Available to internal, guest and linguist users. Project managers require the EDIT right on the job; other roles require SHOW. Guests must also match the project client and have the right to view other users' projects.",
        "operationId": "listAllConversations",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeDeleted",
            "in": "query",
            "description": "Include conversations flagged for deletion",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Return only conversations created after this date, in ISO 8601 UTC format (e.g. 2024-07-21T10:15:27.819Z)",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations/lqas": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "List LQA conversations",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "listLQAConversations",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeDeleted",
            "in": "query",
            "description": "Include conversations flagged for deletion",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Return only conversations created after this date, in ISO 8601 UTC format (e.g. 2024-07-21T10:15:27.819Z)",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LQAConversationsListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations/lqas/{conversationId}": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "Get LQA conversation",
        "description": "Available to internal, guest and linguist users. Project managers require the EDIT right on the job; other roles require SHOW. Guests must also match the project client and have the right to view other users' projects.",
        "operationId": "getLQAConversation",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the LQA conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LQAConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Conversations"
        ],
        "summary": "Delete LQA conversation",
        "description": "Flags the LQA conversation as deleted. Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "deleteLQAConversation",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the LQA conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations/lqas/{conversationId}/comments/{commentId}": {
      "delete": {
        "tags": [
          "Conversations"
        ],
        "summary": "Delete LQA comment",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "deleteLQAComment",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the LQA conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "commentId",
            "in": "path",
            "description": "ID of the comment to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations/plains": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "List plain conversations",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "listPlainConversations",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeDeleted",
            "in": "query",
            "description": "Include conversations flagged for deletion",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "since",
            "in": "query",
            "description": "Return only conversations created after this date, in ISO 8601 UTC format (e.g. 2024-07-21T10:15:27.819Z)",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlainConversationsListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations/plains/{conversationId}": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "Get plain conversation",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "getPlainConversation",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the plain conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlainConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Conversations"
        ],
        "summary": "Edit plain conversation",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "updatePlainConversation",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the plain conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditPlainConversationDtoV1"
              }
            }
          },
          "description": "Edit plain conversation request body",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlainConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Conversations"
        ],
        "summary": "Delete plain conversation",
        "description": "Flags the plain conversation as deleted. Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "deletePlainConversation",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the plain conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}": {
      "delete": {
        "tags": [
          "Conversations"
        ],
        "summary": "Delete plain comment",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "deletePlainComment",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the plain conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "commentId",
            "in": "path",
            "description": "ID of the comment to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/jobs/{jobUid}/conversations/lqas": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "Create LQA conversation",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "createLqaConversationV2",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLqaConversationDtoV2"
              }
            }
          },
          "description": "Create LQA conversation request body",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LQAConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/jobs/{jobUid}/conversations/lqas/{conversationId}": {
      "put": {
        "tags": [
          "Conversations"
        ],
        "summary": "Update LQA conversation",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "updateLqaConversationV2",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the LQA conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditLqaConversationDtoV2"
              }
            }
          },
          "description": "Update LQA conversation request body",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LQAConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/jobs/{jobUid}/conversations/lqas/{conversationId}/comments": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "Add LQA comment",
        "description": "Returns a result wrapper containing the new comment id and the updated conversation. Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "addLQACommentV2",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the LQA conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AddCommentDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddLqaCommentResultDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/jobs/{jobUid}/conversations/lqas/{conversationId}/comments/{commentId}": {
      "put": {
        "tags": [
          "Conversations"
        ],
        "summary": "Edit LQA comment",
        "description": "Available to internal, guest and linguist users; project managers require the EDIT right on the job, other roles require SHOW, and guests must also match the project client and have the right to view other users' projects.",
        "operationId": "updateLQACommentV2",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the LQA conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "commentId",
            "in": "path",
            "description": "ID of the comment to edit",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AddCommentDtoV12"
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LQAConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/jobs/{jobUid}/conversations/plains": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "Create plain conversation",
        "description": "",
        "operationId": "createSegmentTargetConversationV3",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlainConversationDtoV1"
              }
            }
          },
          "description": "Create plain conversation request body",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlainConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "Add plain comment",
        "description": "\nTo notify a user or group, the comment text must contain a mention tag in the exact wire format <@user:UID> or <@group:GROUPNAME> (e.g. <@group:owners>) — see AddCommentDto.text. Only identifiers returned by the \"List mentionable users\" endpoint for this job part are valid mention targets. Plain human-readable text such as \"@owners\" is not recognized as a mention; it is stored as inert text and no notification is sent.\n",
        "operationId": "addPlainCommentV3",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the plain conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AddCommentDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddPlainCommentResultDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}": {
      "put": {
        "tags": [
          "Conversations"
        ],
        "summary": "Edit plain comment",
        "description": "",
        "operationId": "updatePlainCommentV3",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conversationId",
            "in": "path",
            "description": "ID of the plain conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "commentId",
            "in": "path",
            "description": "ID of the comment to edit",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AddCommentDtoV12"
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlainConversationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/costCenters": {
      "get": {
        "tags": [
          "Cost Center"
        ],
        "summary": "List of cost centers",
        "description": "Accessible only by users with the ADMIN or PROJECT_MANAGER role. Results are scoped to the\ncaller's organization. The `name` filter uses prefix matching.",
        "operationId": "listCostCenters",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name prefix",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Uid of user",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "DATE_CREATED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostCenterPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Cost Center"
        ],
        "summary": "Create cost center",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the \"Setup server\" access right.\nThe `name` field is mandatory.",
        "operationId": "createCostCenter",
        "requestBody": {
          "$ref": "#/components/requestBodies/CostCenterEditDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostCenterDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/costCenters/{costCenterUid}": {
      "get": {
        "tags": [
          "Cost Center"
        ],
        "summary": "Get cost center",
        "description": "",
        "operationId": "getCostCenter",
        "parameters": [
          {
            "name": "costCenterUid",
            "in": "path",
            "description": "Cost center UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostCenterDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Cost Center"
        ],
        "summary": "Edit cost center",
        "description": "Only non-null fields in the request body are applied (partial update).\nRequires ADMIN or PROJECT_MANAGER role with the \"Setup server\" access right.",
        "operationId": "updateCostCenter",
        "parameters": [
          {
            "name": "costCenterUid",
            "in": "path",
            "description": "Cost center UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CostCenterEditDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CostCenterDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Cost Center"
        ],
        "summary": "Delete cost center",
        "description": "Soft-deletes the cost center and removes its association from any Project, ProjectTemplate,\nProjectFilter, and ProjectTemplateFilter.\nRequires ADMIN or PROJECT_MANAGER role with the \"Setup server\" access right.",
        "operationId": "deleteCostCenter",
        "parameters": [
          {
            "name": "costCenterUid",
            "in": "path",
            "description": "Cost center UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/customFields": {
      "get": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Lists custom fields",
        "description": "\nReturns a paginated list of custom fields for the organization.\n\nFor each custom field only a truncated set of options is returned (`options.truncatedOptions`, at most 5 items, with `options.remainingCount` indicating how many further options exist). To retrieve all options of a field, use the dedicated `GET /api2/v1/customFields/{fieldUid}/options` endpoint.",
        "operationId": "getCustomFieldList",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by custom field name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "allowedEntities",
            "in": "query",
            "description": "Filter by custom field allowed entities",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "PROJECT",
                  "JOB"
                ]
              }
            }
          },
          {
            "name": "types",
            "in": "query",
            "description": "Filter by custom field types",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "MULTI_SELECT",
                  "SINGLE_SELECT",
                  "STRING",
                  "NUMBER",
                  "URL",
                  "DATE"
                ]
              }
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by custom field creators UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "modifiedBy",
            "in": "query",
            "description": "Filter by custom field updaters UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "uids",
            "in": "query",
            "description": "Filter by custom field UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "required",
            "in": "query",
            "description": "Filter by custom field required parameter",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort by this field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "CREATED",
                "LAST_MODIFIED"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Create custom field",
        "description": "\nCreates a new custom field for the organization.\n\nThe `type` controls how options are handled: only `SINGLE_SELECT` and `MULTI_SELECT` fields use predefined options supplied via `options`; for all other types `options` is ignored.\n\nWhen `required` is `true`, the field must be filled in for the entities listed in `allowedEntities`.",
        "operationId": "createCustomField",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomFieldDtoV1"
              }
            }
          },
          "description": "Custom field to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/customFields/{fieldUid}": {
      "get": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Get custom field",
        "description": "",
        "operationId": "getCustomField",
        "parameters": [
          {
            "name": "fieldUid",
            "in": "path",
            "description": "Unique identifier of the custom field",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Edit custom field",
        "description": "\nUpdates an existing custom field.\n\nThe custom field `type` cannot be changed and is therefore not part of the request body.\n\nFor `SINGLE_SELECT` and `MULTI_SELECT` fields, options are managed through dedicated lists in the request body:\n`addOptions` adds new options by value, `removeOptions` removes existing options by UID, `deprecateOptions` marks existing options as deprecated by UID, and `undeprecateOptions` reverts deprecated options by UID.",
        "operationId": "updateCustomField",
        "parameters": [
          {
            "name": "fieldUid",
            "in": "path",
            "description": "Unique identifier of the custom field",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldDtoV1"
              }
            }
          },
          "description": "Custom field data to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Delete custom field",
        "description": "",
        "operationId": "deleteCustomField",
        "parameters": [
          {
            "name": "fieldUid",
            "in": "path",
            "description": "Unique identifier of the custom field",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/customFields/{fieldUid}/options": {
      "get": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Lists options of custom field",
        "description": "\nReturns a paginated list of all options of the given custom field.\n\nOnly `SINGLE_SELECT` and `MULTI_SELECT` custom fields have options; for other field types the list is empty.",
        "operationId": "getCustomFieldOptionList",
        "parameters": [
          {
            "name": "fieldUid",
            "in": "path",
            "description": "Unique identifier of the custom field",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by option name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort by this field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldOptionPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/customFields/{fieldUid}/options/{optionUid}/deprecate": {
      "put": {
        "tags": [
          "Custom Fields"
        ],
        "summary": "Deprecate custom field option",
        "description": "\nDeprecates or reactivates a single option of a `SINGLE_SELECT` or `MULTI_SELECT` custom field.\n\nSet `deprecated` to `true` to deprecate the option or to `false` to reactivate it.",
        "operationId": "deprecateCustomField",
        "parameters": [
          {
            "name": "fieldUid",
            "in": "path",
            "description": "Unique identifier of the custom field",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "optionUid",
            "in": "path",
            "description": "Unique identifier of the custom field option",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomFieldDeprecateDtoV1"
              }
            }
          },
          "description": "Deprecation state to apply to the option",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/customFields": {
      "get": {
        "tags": [
          "Custom Fields",
          "Term Base"
        ],
        "summary": "List TB custom fields",
        "description": "",
        "operationId": "listTbCustomFields",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TbCustomFieldsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Custom Fields",
          "Term Base"
        ],
        "summary": "Create TB custom field",
        "description": "",
        "operationId": "createTbCustomField",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTbCustomFieldDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TbCustomFieldDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/customFields/{id}": {
      "delete": {
        "tags": [
          "Custom Fields",
          "Term Base"
        ],
        "summary": "Delete TB custom field",
        "description": "",
        "operationId": "deleteTbCustomField",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "patch": {
        "tags": [
          "Custom Fields",
          "Term Base"
        ],
        "summary": "Edit TB custom field",
        "description": "",
        "operationId": "editTbCustomField",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditTbCustomFieldDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TbCustomFieldDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/customFileTypes": {
      "get": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Get all custom file types",
        "description": "\nThe `supportsContinuousJob` flag of each item is derived from the file type.\n\nReturns 501 Not Implemented when custom file types are not enabled for the organization.\n",
        "operationId": "getAllCustomFileType",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFileTypePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Create custom file type",
        "description": "\nThe `type` field accepts only the following values: html, json, xml, multiling_xml, txt.\n\nThe response `supportsContinuousJob` flag is derived from the file type.\n\nReturns 501 Not Implemented when custom file types are not enabled for the organization.\n",
        "operationId": "createCustomFileTypes",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomFileTypeDtoV1"
              }
            }
          },
          "description": "Custom file type to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFileTypeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Delete multiple custom file types",
        "description": "Returns 501 Not Implemented when custom file types are not enabled for the organization.",
        "operationId": "deleteBatchCustomFileType",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteCustomFileTypeDtoV1"
              }
            }
          },
          "description": "Custom file types to delete",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      }
    },
    "/api2/v1/customFileTypes/find": {
      "get": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Find custom file type",
        "description": "\nFinds the custom file type whose filename pattern matches the given `fileName`. If no matching custom file type is found it returns status 200 and an empty body.\n\nThe response `supportsContinuousJob` flag is derived from the file type.\n\nReturns 501 Not Implemented when custom file types are not enabled for the organization.\n",
        "operationId": "findCustomFileType",
        "parameters": [
          {
            "name": "fileName",
            "in": "query",
            "description": "File name matched against custom file type filename patterns",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFileTypeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      }
    },
    "/api2/v1/customFileTypes/{customFileTypeUid}": {
      "get": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Get custom file type",
        "description": "\nThe response `supportsContinuousJob` flag is derived from the file type.\n\nReturns 501 Not Implemented when custom file types are not enabled for the organization.\n",
        "operationId": "getCustomFileType",
        "parameters": [
          {
            "name": "customFileTypeUid",
            "in": "path",
            "description": "Custom file type UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFileTypeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Update custom file type",
        "description": "\nThe `type` field accepts only the following values: html, json, xml, multiling_xml, txt.\n\nThe response `supportsContinuousJob` flag is derived from the file type.\n\nReturns 501 Not Implemented when custom file types are not enabled for the organization.\n",
        "operationId": "updateCustomFileType",
        "parameters": [
          {
            "name": "customFileTypeUid",
            "in": "path",
            "description": "Custom file type UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFileTypeDtoV1"
              }
            }
          },
          "description": "Custom file type fields to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFileTypeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Custom File Type"
        ],
        "summary": "Delete custom file type",
        "description": "Returns 501 Not Implemented when custom file types are not enabled for the organization.",
        "operationId": "deleteCustomFileType",
        "parameters": [
          {
            "name": "customFileTypeUid",
            "in": "path",
            "description": "Custom file type UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      }
    },
    "/api2/v1/domains": {
      "get": {
        "tags": [
          "Domain"
        ],
        "summary": "List of domains",
        "description": "Returns domains belonging to the caller's organisation. Domain is the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical) on projects, project templates, translation memories, and term bases.\nResults are role-dependent: LINGUIST, SUBMITTER, and GUEST roles receive only domains associated\nwith projects they are assigned to. Other roles receive all organisation domains, further restricted\nby the caller's clientViewOther access right (if false, only domains created by the caller are returned).\nFor LINGUIST, SUBMITTER, and GUEST roles, pageNumber is ignored and page 0 is always returned.",
        "operationId": "listDomains",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by domain name (substring match) - the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by UID of the user who created the domain",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "DATE_CREATED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoDomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Domain"
        ],
        "summary": "Create domain",
        "description": "Domain name must be unique within the organisation.",
        "operationId": "createDomain",
        "requestBody": {
          "$ref": "#/components/requestBodies/DomainEditDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/domains/{domainUid}": {
      "get": {
        "tags": [
          "Domain"
        ],
        "summary": "Get domain",
        "description": "Project managers who did not create the domain need the clientViewOther access right (default off) to view it.",
        "operationId": "getDomain",
        "parameters": [
          {
            "name": "domainUid",
            "in": "path",
            "description": "UID of the domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Domain"
        ],
        "summary": "Edit domain",
        "description": "Name must be unique within the organisation if provided. Pass null to leave it unchanged. Project managers who did not create the domain need the clientEditOther access right (default off) to edit it.",
        "operationId": "updateDomain",
        "parameters": [
          {
            "name": "domainUid",
            "in": "path",
            "description": "UID of the domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/DomainEditDtoV1"
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Domain"
        ],
        "summary": "Delete domain",
        "description": "Deletes the domain and removes its reference from all projects, project templates,\ntranslation memories, and term bases. Also removes all user and vendor domain assignments. Project managers who did not create the domain need the clientDeleteOther access right (default off) to delete it.",
        "operationId": "deleteDomain",
        "parameters": [
          {
            "name": "domainUid",
            "in": "path",
            "description": "UID of the domain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/dueDateSchemes": {
      "get": {
        "tags": [
          "Due Date Scheme"
        ],
        "summary": "List due date schemes",
        "description": "",
        "operationId": "listDueDateSchemes",
        "parameters": [
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorting order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "asc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DueDateSchemeListEntryDtoV1"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Due Date Scheme"
        ],
        "summary": "Create due date scheme",
        "description": "",
        "operationId": "createDueDateScheme",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEditDueDateSchemeDtoV1"
              }
            }
          },
          "description": "Due date scheme creation request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DueDateSchemeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Due Date Scheme"
        ],
        "summary": "Delete due date schemes (batch)",
        "description": "",
        "operationId": "deleteDueDateSchemes",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteDueDateSchemesDtoV1"
              }
            }
          },
          "description": "Due date schemes deletion request",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/dueDateSchemes/{dueDateSchemeUid}": {
      "get": {
        "tags": [
          "Due Date Scheme"
        ],
        "summary": "Get due date scheme",
        "description": "",
        "operationId": "getDueDateScheme",
        "parameters": [
          {
            "name": "dueDateSchemeUid",
            "in": "path",
            "description": "UID of the due date scheme",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DueDateSchemeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Due Date Scheme"
        ],
        "summary": "Edit due date scheme",
        "description": "Replaces the whole due date scheme - fields left out are reset to their default value.",
        "operationId": "editDueDateScheme",
        "parameters": [
          {
            "name": "dueDateSchemeUid",
            "in": "path",
            "description": "UID of the due date scheme",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEditDueDateSchemeDtoV1"
              }
            }
          },
          "description": "Due date scheme update request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DueDateSchemeDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/emailTemplates": {
      "get": {
        "tags": [
          "Email Template"
        ],
        "summary": "List email templates",
        "description": "\nRequires an internal user role (Admin or Project Manager). To duplicate/clone an existing template, look up its fields here or via the get-single-template endpoint, then submit them (with a new name) to the create-email-template endpoint.",
        "operationId": "listOrgEmailTemplates",
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "description": "Filter by email template type. Use the /types endpoint to retrieve allowed values",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationEmailTemplatePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Email Template"
        ],
        "summary": "Create (or duplicate/clone) email template",
        "description": "\nRequires an internal user role (Admin or Project Manager) with the Setup server access right. Returns 403 Forbidden if creating or modifying custom email templates is not enabled for the organization. Also used to duplicate/clone an existing template: fetch the source template via list/get, then resubmit its fields here (typically with a new name). For security, links in the subject/body may only be created with Phrase template variables (e.g. {project.url}); introducing any other link (literal URL, script) is rejected with 400.",
        "operationId": "createOrgEmailTemplate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrUpdateOrgEmailTemplateDtoV1"
              }
            }
          },
          "description": "Fields of the email template to create",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationEmailTemplateDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/emailTemplates/testSend": {
      "post": {
        "tags": [
          "Email Template"
        ],
        "summary": "Send test email",
        "description": "\nSends a test email with the given subject and body to the currently authenticated user, to preview formatting/macros before creating or updating a stored template. Available to any authenticated user (including BOT/service-account users); no specific role is required. Does not reference an existing template by UID — pass the subject/body to preview directly. Returns 403 Forbidden if creating or modifying custom email templates is not enabled for the organization.",
        "operationId": "testSend",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestSendRequestDtoV1"
              }
            }
          },
          "description": "Subject and body of the test email to send",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/emailTemplates/types": {
      "get": {
        "tags": [
          "Email Template"
        ],
        "summary": "Get email template types",
        "description": "\nRequires an internal user role (Admin or Project Manager). Returns the allowed values for the type field/filter used by the other email template endpoints.",
        "operationId": "getOrgEmailTemplateTypes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationEmailTemplateTypesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/emailTemplates/{templateUid}": {
      "get": {
        "tags": [
          "Email Template"
        ],
        "summary": "Get email template",
        "description": "\nRequires an internal user role (Admin or Project Manager). To duplicate/clone this template under a new name, submit its returned fields to the create-email-template endpoint.",
        "operationId": "getOrgEmailTemplate",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "UID of the email template, as returned by the list/get/create/update endpoints",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationEmailTemplateDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Email Template"
        ],
        "summary": "Update email template",
        "description": "\nRequires an internal user role (Admin or Project Manager) with the Setup server access right. Returns 403 Forbidden if creating or modifying custom email templates is not enabled for the organization. Replaces all editable fields of the template; it is a full update, not a partial patch — omitted optional fields (ccAddress/bccAddress) are cleared. For security, links in the subject/body may only be created with Phrase template variables (e.g. {project.url}); any other link (literal URL, script) is rejected with 400.",
        "operationId": "updateOrgEmailTemplate",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "UID of the email template, as returned by the list/get/create/update endpoints",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrUpdateOrgEmailTemplateDtoV1"
              }
            }
          },
          "description": "Full replacement set of email template fields",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationEmailTemplateDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Email Template"
        ],
        "summary": "Delete email template",
        "description": "\nRequires an internal user role (Admin or Project Manager) with the Setup server access right.\n\nDeletion fails with 400 Bad Request if the template is currently assigned to an active job widget. On deletion, the template reference is cleared from all associated job widgets, project template workflow settings, automated project configurations, and job parts.",
        "operationId": "deleteOrgEmailTemplate",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "UID of the email template, as returned by the list/get/create/update endpoints",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/files": {
      "get": {
        "tags": [
          "File"
        ],
        "summary": "List files",
        "description": "",
        "operationId": "getFiles",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by file name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "types",
            "in": "query",
            "description": "Filter by file types",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by uploader (user numeric ID)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "biggerThan",
            "in": "query",
            "description": "Filter by minimum file size in bytes",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadedFilePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "File"
        ],
        "summary": "Upload file",
        "description": "Accepts multipart/form-data, application/octet-stream or application/json.",
        "operationId": "createUrlFile",
        "parameters": [
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?filename\\*=UTF-8''(.+)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoteUploadedFileDtoV1"
              }
            },
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/RemoteUploadedFileDtoV1"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/RemoteUploadedFileDtoV1"
              }
            }
          },
          "description": "Remote file to upload; `url` holds the source URL to download from",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadedFileDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/files/{fileUid}": {
      "get": {
        "tags": [
          "File"
        ],
        "summary": "Get file",
        "description": "Get uploaded file as <b>octet-stream</b> or as <b>json</b> based on 'Accept' header",
        "operationId": "getFileJson",
        "parameters": [
          {
            "name": "fileUid",
            "in": "path",
            "description": "Unique identifier of the uploaded file",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadedFileDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "File"
        ],
        "summary": "Delete file",
        "description": "",
        "operationId": "deletesFile",
        "parameters": [
          {
            "name": "fileUid",
            "in": "path",
            "description": "Unique identifier of the uploaded file",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/glossaries": {
      "get": {
        "tags": [
          "Glossary"
        ],
        "summary": "List glossaries",
        "description": "Term content for a glossary (create/get/update/delete term, concepts, metadata) is managed at /api2/v1/termBases/{termBaseUid}, passing the glossary UID as termBaseUid — Glossary and TermBase are sibling resource types, and the polymorphic termBases content endpoints accept a glossary UID directly. Import, export, and browse/search are the exception: the termBases upload, export, browse, and search endpoints resolve termBaseUid against TermBase only and do not accept a glossary UID. Glossaries have their own dedicated /api2/v1/glossaries/{glossaryUid}/upload and /export endpoints; there is no browse/search equivalent for glossaries.",
        "operationId": "listGlossaries",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by glossary name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "Language of the glossary",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlossaryPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Glossary"
        ],
        "summary": "Create glossary",
        "description": "Available to internal users only (Admin or Project Manager). Term content for a glossary (create/get/update/delete term, concepts, metadata) is managed at /api2/v1/termBases/{termBaseUid}, passing the glossary UID as termBaseUid — Glossary and TermBase are sibling resource types, and the polymorphic termBases content endpoints accept a glossary UID directly. Import, export, and browse/search are the exception: the termBases upload, export, browse, and search endpoints resolve termBaseUid against TermBase only and do not accept a glossary UID. Glossaries have their own dedicated /api2/v1/glossaries/{glossaryUid}/upload and /export endpoints; there is no browse/search equivalent for glossaries.",
        "operationId": "createGlossary",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlossaryEditDtoV1"
              }
            }
          },
          "description": "Glossary to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlossaryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/glossaries/{glossaryUid}": {
      "get": {
        "tags": [
          "Glossary"
        ],
        "summary": "Get glossary",
        "description": "Term content for a glossary (create/get/update/delete term, concepts, metadata) is managed at /api2/v1/termBases/{termBaseUid}, passing the glossary UID as termBaseUid — Glossary and TermBase are sibling resource types, and the polymorphic termBases content endpoints accept a glossary UID directly. Import, export, and browse/search are the exception: the termBases upload, export, browse, and search endpoints resolve termBaseUid against TermBase only and do not accept a glossary UID. Glossaries have their own dedicated /api2/v1/glossaries/{glossaryUid}/upload and /export endpoints; there is no browse/search equivalent for glossaries.",
        "operationId": "getGlossary",
        "parameters": [
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlossaryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Glossary"
        ],
        "summary": "Edit glossary",
        "description": "Languages can only be added, their removal is not supported. The glossary owner must be an Admin or Project Manager. Term content for a glossary (create/get/update/delete term, concepts, metadata) is managed at /api2/v1/termBases/{termBaseUid}, passing the glossary UID as termBaseUid — Glossary and TermBase are sibling resource types, and the polymorphic termBases content endpoints accept a glossary UID directly. Import, export, and browse/search are the exception: the termBases upload, export, browse, and search endpoints resolve termBaseUid against TermBase only and do not accept a glossary UID. Glossaries have their own dedicated /api2/v1/glossaries/{glossaryUid}/upload and /export endpoints; there is no browse/search equivalent for glossaries.",
        "operationId": "updateGlossary",
        "parameters": [
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlossaryEditDtoV1"
              }
            }
          },
          "description": "Glossary attributes to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlossaryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Glossary"
        ],
        "summary": "Delete glossary",
        "description": "When purge is false the glossary is soft-deleted; unlike term bases, glossaries do not appear in the deleted-resources recycle bin, so there is currently no way to restore one. When purge is true the glossary is permanently deleted and cannot be restored. Term content for a glossary (create/get/update/delete term, concepts, metadata) is managed at /api2/v1/termBases/{termBaseUid}, passing the glossary UID as termBaseUid — Glossary and TermBase are sibling resource types, and the polymorphic termBases content endpoints accept a glossary UID directly. Import, export, and browse/search are the exception: the termBases upload, export, browse, and search endpoints resolve termBaseUid against TermBase only and do not accept a glossary UID. Glossaries have their own dedicated /api2/v1/glossaries/{glossaryUid}/upload and /export endpoints; there is no browse/search equivalent for glossaries.",
        "operationId": "deleteGlossary",
        "parameters": [
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purge",
            "in": "query",
            "description": "When false the glossary is soft-deleted; unlike term bases, glossaries do not appear in the deleted-resources recycle bin, so there is currently no way to restore one. When true the glossary is permanently deleted and cannot be restored.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/glossaries/{glossaryUid}/activate": {
      "put": {
        "tags": [
          "Glossary"
        ],
        "summary": "Activate/Deactivate glossary",
        "description": "Activates the glossary when active is true and deactivates it when active is false.",
        "operationId": "activateGlossary",
        "parameters": [
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GlossaryActivationDtoV1"
              }
            }
          },
          "description": "Desired activation state of the glossary",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GlossaryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/glossaries/{glossaryUid}/export": {
      "get": {
        "tags": [
          "Glossary"
        ],
        "summary": "Export glossary",
        "description": "\nThis API endpoint is still limited access, and only available to customers on the Enterprise plans on request.\nPlease contact support or your customer success manager if you are interested.\n",
        "operationId": "exportGlossary",
        "parameters": [
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "Tbx"
              ],
              "default": "Tbx"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/glossaries/{glossaryUid}/purge": {
      "post": {
        "tags": [
          "Glossary"
        ],
        "summary": "Purge glossary",
        "description": "\nThis API endpoint is still limited access, and only available to customers on the Enterprise plans on request.\nPlease contact support or your customer success manager if you are interested.\n",
        "operationId": "purgeGlossary",
        "parameters": [
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/glossaries/{glossaryUid}/upload": {
      "post": {
        "tags": [
          "Glossary"
        ],
        "summary": "Upload glossary",
        "description": "\nThis API endpoint is still limited access, and only available to customers on the Enterprise plans on request.\nPlease contact support or your customer success manager if you are interested.\n\nGlossaries can be imported from XLS/XLSX and TBX file formats.\n",
        "operationId": "uploadGlossary",
        "parameters": [
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?filename\\*=UTF-8''(.+)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Unique identifier of the glossary",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "strictLangMatching",
            "in": "query",
            "description": "When true, only terms whose languages exactly match the glossary languages are imported; when false, languages are matched leniently.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "updateTerms",
            "in": "query",
            "description": "When true, existing terms are updated from the imported file.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream2"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGlossaryResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/importSettings": {
      "get": {
        "tags": [
          "Import settings"
        ],
        "summary": "List import settings",
        "description": "Accessible to internal roles (Admin, Project Manager); other roles receive 403. Each entry configures file-format-specific import options, including the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "listImportSettings",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by import settings name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportSettingsReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Import settings"
        ],
        "summary": "Create import settings",
        "description": "Pre-defined import settings is handy for [Create Job](../job/create-job)\n                  and [Create project template](../project-template/create-project-template).\n                  See [supported file\n                  types](https://support.phrase.com/hc/en-us/articles/5709698419868-File-Type-List-TMS).\n                  Includes per-format options, e.g. the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).\n                  Requires an internal role (Admin or Project Manager) with the server setup right.",
        "operationId": "createImportSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportSettingsCreateDtoV1"
              }
            }
          },
          "description": "Import settings to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Import settings"
        ],
        "summary": "Edit import settings",
        "description": "The import settings to update are resolved by the uid in the request body. Includes per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown). Requires an internal role (Admin or Project Manager) with the access-settings right to set up the server. Replaces the entire import settings object identified by that uid — any format section omitted from the request body is reset to its system defaults, not merged with the existing settings. To change a single setting without losing the rest, first call GET /api2/v1/importSettings/{uid} for the same uid, then resend the complete object with the desired change applied on top.",
        "operationId": "editImportSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportSettingsEditDtoV1"
              }
            }
          },
          "description": "Import settings to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/importSettings/default": {
      "get": {
        "tags": [
          "Import settings"
        ],
        "summary": "Get organization's default import settings",
        "description": "Returns the import settings configured as the default for the organization, including per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "getImportSettingsDefault",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Import settings"
        ],
        "summary": "Edit organization's default import settings",
        "description": "Updates the import settings configured as the default for the organization, including per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown). Requires an internal role (Admin or Project Manager) with the access-settings right to set up the server.",
        "operationId": "editDefaultImportSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportSettingsEditDtoV1"
              }
            }
          },
          "description": "Default import settings values",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/importSettings/{uid}": {
      "get": {
        "tags": [
          "Import settings"
        ],
        "summary": "Get import settings",
        "description": "Returns the saved import settings identified by uid, including per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "getImportSettingsByUid",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Unique identifier of the import settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Import settings"
        ],
        "summary": "Delete import settings",
        "description": "Deletes a saved import settings configuration, including any per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "deleteImportSettings",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Unique identifier of the import settings",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobViewConfigurations": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "List job view configurations",
        "description": "Lists the saved Jobs-list views (\"Save filter as...\") owned by the calling user, each resolved to its stored filter criteria and column selection.",
        "operationId": "listJobViewConfigurations",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobViewConfigurationsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobViewConfigurations/{uid}": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get job view configuration",
        "description": "Resolves a single saved Jobs-list view to its stored filter criteria and column selection.",
        "operationId": "getJobViewConfiguration",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Job view configuration UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobViewConfigurationDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/jobs/{jobPartUid}/previewPackage/asset/{assetFileUid}": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get Job Preview Package assets",
        "description": "URLs for this API are provided in html skeleton (preview) part of mxliff. Assets are served with a sandbox Content-Security-Policy so they never execute on the application origin.",
        "operationId": "getAsset",
        "parameters": [
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assetFileUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/fileHandovers": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Download handover file(s)",
        "description": "\nFor downloading multiple files as ZIP file provide multiple IDs in query parameters.\n* For example `?jobUid={id1}&jobUid={id2}`\n* When no files matched given IDs error 404 is returned, otherwise ZIP file will include those that were found\n",
        "operationId": "getHandoverFiles",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "query",
            "description": "JobPart Id of requested handover file",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Job"
        ],
        "summary": "Upload handover file",
        "description": "\nFor following jobs the handover file is not supported:\n* Continuous jobs\n* Jobs from connectors\n* Split jobs\n* Multilingual jobs\n",
        "operationId": "uploadHandoverFile",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Memsource",
            "in": "header",
            "required": true,
            "example": "{\"jobs\":[{\"uid\":\"8kMckeDcgWWF4Fe4Szqjb1\"}]}",
            "schema": {
              "type": "string",
              "format": "application/json"
            }
          },
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?(filename\\*=UTF-8''(.+)|filename=\"?(.+)\"?)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Length",
            "in": "header",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream2"
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileHandoverDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Job"
        ],
        "summary": "Delete handover file",
        "description": "",
        "operationId": "deleteHandoverFile",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReferences"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Create job",
        "description": "\nUpload a source file to create a translation job in the specified project.\nAn API call to create a [job](https://support.phrase.com/hc/en-us/articles/5709686763420-Jobs-TMS-)\nwithin a specified [project](https://support.phrase.com/hc/en-us/articles/5709748435484-Projects-TMS-).\nThe source file can be uploaded directly in the message body or downloaded from connector.\n\n**Job import is asynchronous.** The file is processed in the background after this call returns. The response\nbody includes an `asyncRequest` object; poll [Get asynchronous request](../async-request/get-asynchronous-request)\n(action: `IMPORT_JOB`) to track import progress. To check whether individual jobs are ready, poll\n[Get job](../job/get-job) and inspect the `importStatus.status` field (`RUNNING`, `ERROR`, `OK`).\n\nPlease supply job metadata in `Memsource` header. For file in the request body provide also the\nfilename in `Content-Disposition` header.\n\nAccepted metadata:\n\n- **targetLangs** - This parameter specifies what languages should the job be created in. Only languages that are\npresent in the project are supported, but this parameter accepts a subset of languages. When the file is uploaded, the\nnumber of jobs created (and returned) corresponds to the number of target languages and the workflow steps of the\nproject. For example, `sample.json` imported for `EN>DE` and `EN>FR` language combination into a project with\n`Translation` and `Review` workflow steps will result in 4 jobs being created, one for each language and step.\n_Note_: Each time a file is uploaded, the resulting wordcount for each target language (not workflow step) is counted\ntowards the organization's allowance.\n- **due** - ISO 8601\n- **workflowSettings** - This parameter is used to set up assignments and due date for projects with workflow steps.\nWhen a project is created, the global workflow steps available via [List workflow steps](../workflow-step/list-workflow-steps) are\ninstantiated for the given project at hand. To assign users or due dates, these project specific IDs need to be used\ninstead of the global ones.\n- **assignments** - If a project does not contain workflow steps, this parameter can be used to assign users directly.\n- **importSettings** - Re-usable [import settings](../import-settings/create-import-settings)\n- **useProjectFileImportSettings** - When project is created, either global default setting or settings of a\n[project template](https://support.phrase.com/hc/en-us/articles/5709647439772-Project-Templates-TMS-) are copied\ninto it. This parameter can be used to reference these project settings instead of using the API defaults.\nMutually exclusive with importSettings\n- **callbackUrl** - A URL that can be notified when the job creation has been finished.\nUnlike [webhooks](https://support.phrase.com/hc/en-us/articles/5709693398812-Webhooks-TMS-) which are global for the\nentire account, the `callbackUrl` is set only for the specific operation at hand.\n- **path** - A parameter that can be used to specify a location of the source file and preserved for later download.\nThis is automatically created when importing ZIP files.\n- **preTranslate** - When `true`, the system automatically starts\n[pre-translation](https://support.phrase.com/hc/en-us/articles/5709717749788-Pre-translation-TMS-)\nafter import completes. Recommended when pre-translation is the goal: the platform handles the\nimport-ready gate internally, removing the need to manually poll `importStatus.status`.\n- **semanticMarkup** - Set semantic markup processing after import when enabled for organization\n- **xmlAssistantProfile** - Apply XML import settings defined using XML assistant\n- **jobPreviewPackageFileUidRef** - reference to a job preview package file to create a preview for the imported file\n- **idmlPreviewAssetsFileUidRef** - reference to an IDML preview asset file (PDF/ZIP) to create an in-context\npreview for the imported IDML file\n\nFor remote file jobs also `remoteFile` can be added. To retrieve the information below,\nuse the [connector](../connector/list-connectors) APIs.\n- **connectorToken** - Token of the connector for the purposes of the APIs\n- **remoteFolder** - An encoded name of the folder, retrieved by e.g. [List files in a subfolder](../connector/list-files-in-a-subfolder)\n- **remoteFileName** - An encoded name of the file, retrieved similarly to above.\n- **continuous** - Jobs created with files from a connector can be created\nas [continuous](https://support.phrase.com/hc/en-us/articles/5709711922972-Continuous-Jobs-CJ-TMS-)\n\nCreate and assign job in project without workflow step:\n```\n\n{\n  \"targetLangs\": [\n    \"cs_cz\"\n  ],\n  \"callbackUrl\": \"https://my-shiny-service.com/consumeCallback\",\n  \"importSettings\": {\n    \"uid\": \"abcd123\"\n  },\n  \"due\": \"2007-12-03T10:15:30.00Z\",\n  \"path\": \"destination directory\",\n  \"assignments\": [\n    {\n      \"targetLang\": \"cs_cz\",\n      \"providers\": [\n        {\n          \"id\": \"4321\",\n          \"type\": \"USER\"\n        }\n      ]\n    }\n  ],\n  \"notifyProvider\": {\n    \"organizationEmailTemplate\": {\n      \"id\": \"39\"\n    },\n    \"notificationIntervalInMinutes\": \"10\"\n  }\n}\n```\n\nCreate job from remote file without workflow steps:\n```\n\n{\n  \"remoteFile\": {\n    \"connectorToken\": \"948123ef-e1ef-4cd3-a90e-af1617848af3\",\n    \"remoteFolder\": \"/\",\n    \"remoteFileName\": \"Few words.docx\",\n    \"continuous\": false\n  },\n  \"assignments\": [],\n  \"workflowSettings\": [],\n  \"targetLangs\": [\n    \"cs\"\n  ]\n}\n```\n\nCreate and assign job in project with workflow step:\n```\n\n{\n  \"targetLangs\": [\n    \"de\"\n  ],\n  \"useProjectFileImportSettings\": \"true\",\n  \"workflowSettings\": [\n    {\n      \"id\": \"64\",\n      \"due\": \"2007-12-03T10:15:30.00Z\",\n      \"assignments\": [\n        {\n          \"targetLang\": \"de\",\n          \"providers\": [\n            {\n              \"id\": \"3\",\n              \"type\": \"VENDOR\"\n            }\n          ]\n        }\n      ],\n      \"notifyProvider\": {\n        \"organizationEmailTemplate\": {\n          \"id\": \"39\"\n        },\n        \"notificationIntervalInMinutes\": \"10\"\n      }\n    }\n  ]\n}\n```\n\nCreate a job with job preview package reference:\n```\n{\n  \"targetLangs\": [\n    \"de\"\n  ],\n  \"jobPreviewPackageFileUidRef\": {\"uid\": \"jobPreviewPackageFileUid123\"}\n}\n```\n    ",
        "operationId": "createJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Memsource",
            "in": "header",
            "description": "Job metadata JSON (see endpoint description for accepted fields)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "application/json"
            }
          },
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "Required when `remoteFile` is empty. Must match pattern `((inline|attachment); )?(filename\\*=UTF-8''(.+)|filename=\"?(.+)\"?)`",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/InputStream"
              }
            }
          },
          "description": "Source file binary; required when `remoteFile` is not supplied in the metadata"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/batch": {
      "put": {
        "tags": [
          "Job"
        ],
        "summary": "Edit jobs (batch)",
        "description": "\nReturns only jobs which were updated by the batch operation.\n",
        "operationId": "editParts",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartUpdateBatchDtoV1"
              }
            }
          },
          "description": "Batch of jobs and the fields to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List_of_job_parts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Job"
        ],
        "summary": "Delete job (batch)",
        "description": "\nEach submitted job part UID is resolved to its parent job. The entire job is then deleted, including every job part across all workflow steps/levels — not only the submitted job parts. There is no way to delete a subset of a job's job parts while preserving the rest; to remove only some workflow steps for a target language while keeping earlier, already-delivered steps intact, this endpoint cannot be used.\n",
        "operationId": "deleteParts",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purge",
            "in": "query",
            "description": "When true, permanently purges the deleted jobs",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartDeleteReferences"
              }
            }
          },
          "description": "Jobs to delete",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/bilingualFile": {
      "post": {
        "tags": [
          "Job",
          "Bilingual File"
        ],
        "summary": "Download bilingual file (also used to bulk-edit translations, confirm, or lock/unlock segments via re-import)",
        "description": "\nThis API call generates a bilingual file in the chosen format by merging all submitted jobs together.\nNote that all submitted jobs must belong to the same project; it's not feasible to merge jobs from multiple projects.\n\nWhen dealing with MXLIFF or DOCX files, modifications made externally can be imported back into the Phrase TMS project.\nAny changes will be synchronized into the editor, allowing actions like confirming or locking segments.\n\nUnlike the user interface (UI), the APIs also support XLIFF as a bilingual format.\n\nWhile MXLIFF files are editable using various means, their primary intended use is with the\n[CAT Desktop Editor](https://support.phrase.com/hc/en-us/articles/5709683873052-CAT-Desktop-Editor-TMS-).\nIt's crucial to note that alterations to the file incompatible with the CAT Desktop Editor's features may result in\na corrupted file, leading to potential loss or duplication of work.\n\nSee the [MXLIFF guide](https://developers.phrase.com/en/guides/mxliff/overview) for the bilingual file format\nreference.\n",
        "operationId": "getBilingualFile",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Bilingual file format",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "MXLF",
                "DOCX",
                "XLIFF",
                "TMX"
              ],
              "default": "MXLF"
            }
          },
          {
            "name": "preview",
            "in": "query",
            "description": "Include preview",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetBilingualFileDtoV1"
              }
            }
          },
          "description": "Job parts to merge into the bilingual file",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "headers": {
              "Content-Disposition": {
                "description": "Contains filename (UTF-8 encoded). \n\n `filename*=UTF-8''ExampleFileName.md`",
                "schema": {
                  "type": "string"
                }
              },
              "Content-Type": {
                "description": "Format-dependent MIME type. MXLF: application/mxliff; charset=utf-8 | XLIFF: application/xliff+xml; charset=utf-8 | TMX: application/tmx; charset=utf-8 | DOCX: application/vnd.openxmlformats-officedocument.wordprocessingml.document",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/clone": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Clone jobs",
        "description": "Clones the selected jobs into new target\n            languages, optionally applying per-workflow-step settings: linguist/vendor assignment per target language,\n            due date and notify-linguist (email template + reminder interval) per workflow step. The project must\n            have more than one target language and must not have reached its job limit; multilingual jobs are\n            rejected.",
        "operationId": "cloneJobs",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneJobsRequestDtoV1"
              }
            }
          },
          "description": "Jobs to clone and their target languages",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List_of_job_parts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/compare": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Compare jobs on workflow levels",
        "description": "",
        "operationId": "comparePart",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "atWorkflowLevel",
            "in": "query",
            "description": "Workflow level to compare",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "withWorkflowLevel",
            "in": "query",
            "description": "Workflow level to compare with",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReadyReferences"
              }
            }
          },
          "description": "Job parts to compare",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComparedSegmentsDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/connectorTask": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Create job from connector asynchronous download task",
        "description": "\nCreates the job in project specified by path param projectUid. Source file is defined by downloadTaskId parameter. That is value of finished download async task\n[Connector - Download file (async)](../connector/download-file-async).\n\nPlease supply job metadata in body.\n\nAccepted metadata:\n\n  - `targetLangs` - **required**\n  - `due` - ISO 8601\n  - `workflowSettings` - project with workflow - see examples bellow\n  - `assignments` - project without workflows - see examples bellow\n  - `importSettings` - re-usable import settings - see [Create import settings](../import-settings/create-import-settings)\n  - `useProjectFileImportSettings` - mutually exclusive with importSettings\n  - `callbackUrl` - consumer callback\n  - `path` - original destination directory\n  - `preTranslate` - set pre translate job after import\n  - `semanticMarkup` - set semantic markup processing after import when enabled for organization\n  - `xmlAssistantProfile` - apply XML import settings defined using XML assistant\n\nCreate job simple (without workflow steps, without assignments):\n```\n{\n  \"targetLangs\": [\n    \"cs_cz\",\n    \"es_es\"\n  ]\n}\n```\n\nCreate and assign job in project without workflow step:\n```\n{\n  \"targetLangs\": [\n    \"cs_cz\"\n  ],\n  \"callbackUrl\": \"https://my-shiny-service.com/consumeCallback\",\n  \"importSettings\": {\n    \"uid\": \"abcd123\"\n  },\n  \"due\": \"2007-12-03T10:15:30.00Z\",\n  \"path\": \"destination directory\",\n  \"assignments\": [\n    {\n      \"targetLang\": \"cs_cz\",\n      \"providers\": [\n        {\n          \"id\": \"4321\",\n          \"type\": \"USER\"\n        }\n      ]\n    }\n  ],\n  \"notifyProvider\": {\n    \"organizationEmailTemplate\": {\n      \"id\": \"39\"\n    },\n    \"notificationIntervalInMinutes\": \"10\"\n  }\n}\n```\n\nCreate and assign job in project with workflow step:\n```\n{\n  \"targetLangs\": [\n    \"de\"\n  ],\n  \"useProjectFileImportSettings\": \"true\",\n  \"workflowSettings\": [\n    {\n      \"id\": \"64\",\n      \"due\": \"2007-12-03T10:15:30.00Z\",\n      \"assignments\": [\n        {\n          \"targetLang\": \"de\",\n          \"providers\": [\n            {\n              \"id\": \"3\",\n              \"type\": \"VENDOR\"\n            }\n          ]\n        }\n      ],\n      \"notifyProvider\": {\n        \"organizationEmailTemplate\": {\n          \"id\": \"39\"\n        },\n        \"notificationIntervalInMinutes\": \"10\"\n      }\n    }\n  ]\n}\n```\n    ",
        "operationId": "createJobFromAsyncDownloadTask",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "downloadTaskId",
            "in": "query",
            "description": "ID of the finished connector download async task providing the source file",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "continuous",
            "in": "query",
            "description": "When true, the job is created as continuous",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobCreateRequestDtoV1"
              }
            }
          },
          "description": "Job creation metadata",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/copySourceToTarget": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Copy Source to Target",
        "description": "",
        "operationId": "copySourceToTarget",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReadyReferences"
              }
            }
          },
          "description": "Job parts to copy source to target for",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/evaluateQuality": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Trigger quality evaluation for selected job parts",
        "description": "Runs quality evaluation asynchronously. Evaluation is based on the Content Group linked to the project — link one first via POST /api2/v1/projects/{projectUid}/contentGroup. Returns 422 Unprocessable Entity if the project has no Content Group linked. Job parts must belong to the same project, workflow step, and be in a ready state. Only unlocked segments are evaluated — already locked segments are skipped. Linguists may only evaluate job parts assigned to them. lockSegments defaults to true — segments that pass all AI checks are locked after evaluation. confirmSegments defaults to false — segments are not confirmed unless explicitly set to true. Returns an asyncRequest object. Poll GET /api2/v1/async/{asyncRequest.id} until asyncResponse is not null before retrieving results. Once the async job has completed, call POST /api2/v1/qualityProfiles/qeWarnings with the same job part UIDs to retrieve quality warnings. Alternatively, pass callbackUrl to be notified via a POST request once evaluation of all the selected job parts has finished, instead of polling.",
        "operationId": "evaluateAsync",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QualityEvaluationAsyncRequestDtoV1"
              }
            }
          },
          "description": "Job parts to evaluate with lock and confirm settings",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "422": {
            "description": "Unprocessable Entity"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/extractTerms": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Extract candidate terms",
        "description": "Suggests candidate terms from the content of the given jobs, based on frequency and other heuristics. Returns an XLSX file listing the suggested terms.",
        "operationId": "extractTerms",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExtractTermsRequestDtoV1"
              }
            }
          },
          "description": "Jobs to extract candidate terms from and extraction settings",
          "required": true
        },
        "responses": {
          "200": {
            "description": "application/octet-stream",
            "headers": {
              "Content-Disposition": {
                "description": "Contains filename (UTF-8 encoded). \n\n `filename*=UTF-8''terms.xlsx`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/notifyAssigned": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Notify assigned users",
        "description": "",
        "operationId": "notifyAssigned",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NotifyJobPartsRequestDtoV1"
              }
            }
          },
          "description": "Job parts to notify and the email template to use",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/search": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Search jobs in project",
        "description": "\nThis API call can be used to verify (search) which of the provided jobs belong to the specified project. For the jobs\nthat belong to the project, a subset of [Get job](../job/get-job) information will be returned and the rest of the\njobs will be filtered out.\n",
        "operationId": "searchPartsInProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchJobsRequestDtoV1"
              }
            }
          },
          "description": "Jobs to search for within the project",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchJobsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/segmentsCount": {
      "post": {
        "tags": [
          "Job",
          "Segment"
        ],
        "summary": "Get segments count",
        "description": "\nThis API provides the current count of segments (progress data).\n\nEvery time this API is called, it returns the most up-to-date information. Consequently, these numbers will change\ndynamically over time. The data retrieved from this API call is utilized to calculate the progress percentage in the UI.\n\nThe call returns the following information:\n\nCounts of characters, words, and segments for each of the locked, confirmed, and completed categories. In this context,\n_completed_ is defined as `confirmed` + `locked` - `confirmed and locked`; a segment that has target content from\npre-translation but has not yet been confirmed by a linguist is **not** counted as `confirmed`, `completed`, or\n`translated` — see the next paragraph.\n\n`translatedSegmentsCount` counts segments confirmed at this workflow step, not segments that merely have target text.\nA job can be fully pre-translated and still report `translatedSegmentsCount: 0` and `completedSegmentsCount: 0` if\nnone of its segments have been confirmed yet — this is expected behavior, not a sign that pre-translation produced\nno content. To check whether pre-translation actually produced content, use `machineTranslationRelevantSegmentsCount`\nbelow.\n\nThe number of added words if the [Update source](https://support.phrase.com/hc/en-us/articles/10825557848220-Job-Tools)\noperation has been performed on the job. In this context, added words are defined as the original word count plus the\nsum of words added during all subsequent update source operations.\n\n`machineTranslationRelevantSegmentsCount` counts segments that have both a non-empty target and stored machine\ntranslation (MT) output — this is the field to check to confirm that pre-translation produced content, independent\nof whether that content has since been confirmed. `machineTranslationPostEditedSegmentsCount` counts segments where\nthe MT output was post-edited; it stays `0` for a segment whose target still equals the stored MT output.\n\nA breakdown of [Quality assurance](https://support.phrase.com/hc/en-us/articles/5709703799324-Quality-Assurance-QA-TMS-)\nresults, including the number of segments on which it was performed, the count of warnings found, and the number of\nwarnings that were ignored.\n\nAdditionally, a breakdown of the aforementioned information from the previous\n[Workflow step](https://support.phrase.com/hc/en-us/articles/5709717879324-Workflow-TMS-) is also provided.\n",
        "operationId": "getSegmentsCount",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReadyReferences"
              }
            }
          },
          "description": "Job parts to compute segment counts for",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentsCountsResponseListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/source": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Update source",
        "description": "\nReimports an already-imported job by replacing its source file with a new one. This is a job-level operation, distinct from the organization-level import settings templates managed via the import settings API.\n\nAPI updated source file for specified job\n\nJob file can be provided directly in the message body. \n\nPlease supply jobs in `Memsource` header. \n\nFor file in the request body provide also the filename in `Content-Disposition` header.\n\nIf a job from a multilingual file is updated, all jobs from the same file are update too even if their UIDs aren't \nlisted in the jobs field.\n\nAccepted metadata: \n\n  - `jobs` - **required** - list of jobs UID reference (maximum size `100`)\n  - `preTranslate` - pre translate flag (default `false`)\n  - `allowAutomaticPostAnalysis` - if automatic post editing analysis should be created. If not specified then value \n                                   is taken from the analyse settings of the project\n  - `callbackUrl` - consumer callback\n\nJob restrictions:\n  - job must belong to project specified in path (`projectUid`)\n  - job `UID` must be from the first workflow step\n  - job cannot be split\n  - job cannot be continuous\n  - job cannot originate in a connector\n  - status in any of the job's workflow steps cannot be a final\n    status (`COMPLETED_BY_LINGUIST`, `COMPLETED`, `CANCELLED`)\n  - job UIDs must be from the same multilingual file if a multilingual file is updated\n  - multiple multilingual files or a mixture of multilingual and other jobs cannot be updated in one call\n\nFile restrictions:\n  - file cannot be a `.zip` file\n\nExample:\n\n```\n{\n  \"jobs\": [\n    {\n        \"uid\": \"jobIn1stWfStepAndNonFinalStatusUid\"\n    }\n  ],\n  \"preTranslate\": false,\n  \"allowAutomaticPostAnalysis\": false\n  \"callbackUrl\": \"https://my-shiny-service.com/consumeCallback\"\n}\n```\n\n",
        "operationId": "updateSource",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Memsource",
            "in": "header",
            "description": "Update source metadata JSON (see endpoint description)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "application/json"
            }
          },
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?(filename\\*=UTF-8''(.+)|filename=\"?(.+)\"?)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/InputStream"
              }
            }
          },
          "description": "Source file binary",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobUpdateSourceResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/target": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Update target",
        "description": "\nAPI update target file for specified job\n\nJob file can be provided directly in the message body.\n\nPlease supply jobs in `Memsource` header.\n\nFor file in the request body provide also the filename in `Content-Disposition` header.\n\nAccepted metadata:\n\n  - `jobs` - **required** - list of jobs UID reference (maximum size `1`)\n  - `propagateConfirmedToTm` - sets if confirmed segments should be stored in TM (default value: true)\n  - `callbackUrl` - consumer callback\n  - `targetSegmentationRule` - ID reference to segmentation rule of organization to use for update target\n  - `unconfirmChangedSegments` - sets if segments should stay unconfirmed\n\nJob restrictions:\n  - job must belong to project specified in path (`projectUid`)\n  - job cannot be split\n  - job cannot be continuous\n  - job cannot originate in a connector\n  - job cannot have different file extension than original file\n\nFile restrictions:\n  - file cannot be a `.zip` file\n  - update target is not allowed for jobs with file extensions: po, tbx, tmx, ttx, ts\n  - update target for multilingual jobs works only with following file extensions: xliff, xlsx, csv\n\nExample:\n\n```\n{\n  \"jobs\": [\n    {\n        \"uid\": \"jobUid\"\n    }\n  ],\n  \"propagateConfirmedToTm\": true,\n  \"targetSegmentationRule\": {\n        \"id\": \"1\"\n   },\n  \"callbackUrl\": \"https://my-shiny-service.com/consumeCallback\"\n}\n```\n\n",
        "operationId": "updateTarget",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Memsource",
            "in": "header",
            "description": "Update target metadata JSON (see endpoint description)",
            "required": true,
            "schema": {
              "type": "string",
              "format": "application/json"
            }
          },
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?(filename\\*=UTF-8''(.+)|filename=\"?(.+)\"?)`",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/InputStream"
              }
            }
          },
          "description": "Target file binary",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobUpdateTargetResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/translations": {
      "delete": {
        "tags": [
          "Job"
        ],
        "summary": "Delete all translations",
        "description": "",
        "operationId": "deleteAllTranslations",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReadyReferences"
              }
            }
          },
          "description": "Job parts whose translations should be cleared",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobPartUid}/customFields": {
      "get": {
        "tags": [
          "Job",
          "Custom Fields"
        ],
        "summary": "Get custom fields",
        "description": "",
        "operationId": "getCustomFieldsJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 20",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter creators UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "modifiedBy",
            "in": "query",
            "description": "Filter updaters UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort by this field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CREATED",
                "LAST_MODIFIED"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoCustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Job",
          "Custom Fields"
        ],
        "summary": "Create custom field instances",
        "description": "",
        "operationId": "createCustomFieldsJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomFieldInstancesDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Job",
          "Custom Fields"
        ],
        "summary": "Edit custom fields (batch)",
        "description": "",
        "operationId": "editCustomFieldsJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldInstancesDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobPartUid}/customFields/{instanceUid}": {
      "get": {
        "tags": [
          "Job",
          "Custom Fields"
        ],
        "summary": "Get custom field",
        "description": "",
        "operationId": "getCustomFieldJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Job",
          "Custom Fields"
        ],
        "summary": "Edit custom field",
        "description": "",
        "operationId": "editCustomFieldJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldInstanceDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Job",
          "Custom Fields"
        ],
        "summary": "Delete custom field",
        "description": "",
        "operationId": "deleteCustomFieldJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobPartUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "instanceUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Deleted"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get job",
        "description": "\nThis API call provides specific information about a\n[job](https://support.phrase.com/hc/en-us/articles/5709686763420-Jobs-TMS-) within a project.\n\nThe response includes fundamental job details such as the current status, assigned providers, language combination, or\n[workflow step](https://support.phrase.com/hc/en-us/articles/5709717879324-Workflow-TMS-) to which the job belongs.\nAdditionally, it offers a subset of the [Get project](../project/get-project) information.\n\nFurthermore, the response contains timestamps for the last\n[Update source and Update target](https://support.phrase.com/hc/en-us/articles/10825557848220-Job-Tools) operations\nexecuted on the job.\n\nIf the job was imported as\n[continuous](https://support.phrase.com/hc/en-us/articles/5709711922972-Continuous-Jobs-CJ-TMS-), the job will be\nmarked as such, and the response will include the timestamp of the last update.\n\nMoreover, the response features a boolean flag indicating if the job was imported successfully.\nIt also highlights potential errors that might have occurred during the import process.\n\nThe `jobReference` field serves as a unique identifier that allows matching corresponding jobs across different\nworkflow steps.\n\n**Import readiness:** The `importStatus.status` field indicates whether file import has completed:\n- `RUNNING` — import is in progress\n- `ERROR` — import failed; check `importStatus.errorMessage` for details\n- `OK` — import succeeded; the job is ready for subsequent operations such as pre-translate\n\nDo not call [Pre-translate job](../job/pre-translate-job) until `importStatus.status` is `OK`.\nCalling it earlier returns `400 JOB_NOT_READY`.\n",
        "operationId": "getPart",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPartExtendedDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Job"
        ],
        "summary": "Edit job (assign provider, due date, status)",
        "description": "\nThis API call facilitates job editing using a PUT method.\n\nUnlike [Patch job](../job/patch-job), this call employs a PUT method, necessitating the inclusion of all\nparameters in the request. Omitting any parameter will reset its value to the default. For instance, if only the status\nfield is included, the due date and provider fields will be emptied, even if they had previous values.\n\nIt's recommended to either use a call like [Get job](../job/get-job) or [List jobs](../job/list-jobs) to\ngather the unchanged information or consider using the [Patch job](../job/patch-job) operation.\n\nThis call supports editing the status, due date, and providers. When modifying providers, it's crucial to submit both\nthe provider's ID and its type (either VENDOR or USER).\n\nTo mark a job as completed (finished), set the status field to COMPLETED. Consider using\n[Edit job status](../job/edit-job-status) instead, since it does not require resending the due date and providers.\n\nAssigning a provider through this call does NOT send a notification email to the assigned provider. To notify\nproviders of their assignment, call [Notify assigned users](../job/notify-assigned-users) with the emailTemplate.id of\nthe template to send.\n\nThe response will offer a subset of information from [Get job](../job/get-job).\n",
        "operationId": "editPart",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartUpdateSingleDtoV1"
              }
            }
          },
          "description": "Full set of job fields to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPartExtendedDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "patch": {
        "tags": [
          "Job"
        ],
        "summary": "Patch job (assign provider, due date, status)",
        "description": "\nThis API call allows for partial updates to jobs, modifying specific fields without overwriting\nthose not included in the update request.\n\nDiffering from [Edit job](../job/edit-job), this call employs a PATCH method, updating only the provided fields\nwithout altering others. It's beneficial when editing a subset of supported fields is required.\n\nThe call supports the editing of status, due date, and providers. When editing providers, it's essential to submit\nboth the ID of the provider and its type (either VENDOR or USER).\n\nThe response will provide a subset of information from [Get job](../job/get-job).\n",
        "operationId": "patchPart",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartPatchSingleDtoV1"
              }
            }
          },
          "description": "Subset of job fields to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPartExtendedDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/copySourceToTarget": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Copy Source to Target job",
        "description": "",
        "operationId": "copySourceToTargetJobPart",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/importSettings": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get import settings for job",
        "description": "Returns the job-level import settings currently applied to this already-imported job, including per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown). This is distinct from the organization-level import settings templates managed via the import settings API (`/api2/v1/importSettings`). Use together with the edit job import settings endpoint to change these settings before a reimport of the job's source file.",
        "operationId": "getImportSettingsForJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Job"
        ],
        "summary": "Edit job import settings",
        "description": "Updates the job-level import settings for this already-imported job so that a subsequent reimport of the job's source file uses the new settings. This is distinct from the organization-level import settings templates managed via the import settings API (`/api2/v1/importSettings`). Includes per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown). Replaces the entire import settings object. Any format section omitted from the request body is reset to its system defaults — it is not merged with the job's current settings. To change a single setting without losing the rest, first call GET /api2/v1/projects/{projectUid}/jobs/{jobUid}/importSettings, then resend the complete object with the desired change applied on top.",
        "operationId": "editJobImportSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileImportSettingsCreateDtoV1"
              }
            }
          },
          "description": "Import settings to apply to the job",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/original": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Download original file",
        "description": "The response Content-Type is always application/octet-stream regardless of the original file format. The filename in Content-Disposition preserves the original name and may have no extension if the job was imported without one.",
        "operationId": "getOriginalFile",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/octet-stream",
            "headers": {
              "Content-Disposition": {
                "description": "Contains filename (UTF-8 encoded). \n\n `filename*=UTF-8''ExampleFileName.md`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/preview": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Download preview file",
        "description": "",
        "operationId": "filePreviewJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/octet-stream",
            "headers": {
              "Content-Disposition": {
                "description": "Contains filename (UTF-8 encoded). \n\n `filename*=UTF-8''ExampleFileName.md`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Download preview file",
        "description": "Takes bilingual file (.mxliff only) as argument. If not passed, data will be taken from database",
        "operationId": "filePreview",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/InputStream"
              }
            }
          },
          "description": "Optional bilingual .mxliff file; if omitted, preview is built from stored data"
        },
        "responses": {
          "200": {
            "description": "application/octet-stream",
            "headers": {
              "Content-Disposition": {
                "description": "Contains filename (UTF-8 encoded). \n\n `filename*=UTF-8''ExampleFileName.md`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/pseudoTranslate": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Pseudo-translates job",
        "description": "",
        "operationId": "pseudoTranslateJobPart",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PseudoTranslateActionDtoV1"
              }
            }
          },
          "description": "Pseudo-translation settings",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/segments": {
      "get": {
        "tags": [
          "Job",
          "Segment"
        ],
        "summary": "Get segments",
        "description": "",
        "operationId": "listSegments",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "beginIndex",
            "in": "query",
            "description": "Index of the first segment to return (0-based)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "endIndex",
            "in": "query",
            "description": "Index of the last segment to return (0-based, inclusive). Values beyond the last segment are clamped to the last segment; use a large value to fetch all segments from beginIndex. Default 0 returns a single segment.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentListDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/setStatus": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Edit job status",
        "description": "\nChanges the status of a single job.\n\nTo mark a job as completed (finished), set the requestedStatus field to COMPLETED.\n",
        "operationId": "setStatus",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobStatusChangeActionDtoV1"
              }
            }
          },
          "description": "Requested status change",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/split": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Split job",
        "description": "\nSplits job by one of the following methods:\n* **After specific segments** - fill in `segmentOrdinals`\n* **Into X parts** - fill in `partCount`\n* **Into parts with specific size** - fill in `partSize`. partSize represents segment count in each part.\n* **Into parts with specific word count** - fill in `wordCount`\n* **By document parts** - fill in `byDocumentPart`, works only with **PowerPoint** files\n\nOnly one option at a time is allowed.\n\nUse `splitAllWorkflowSteps` to split in all workflow steps (default: false). When enabled, the split operation will be\napplied to all sibling job parts across all workflow steps in the project.",
        "operationId": "split",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SplitJobActionDtoV1"
              }
            }
          },
          "description": "Split configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List_of_job_parts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/statusChanges": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get status changes",
        "description": "",
        "operationId": "statusChanges",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order of the returned status changes",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPartStatusChangesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/targetFileWarnings": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get target file's warnings",
        "description": "\nThis call will return target file's warnings. This means even for other jobs that were created via 'split jobs' etc.\n",
        "operationId": "getCompletedFileWarnings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TargetFileWarningsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/translationResources": {
      "get": {
        "tags": [
          "Job",
          "Machine Translation Settings",
          "Term Base",
          "Translation Memory"
        ],
        "summary": "Get translation resources",
        "description": "",
        "operationId": "getTranslationResources",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationResourcesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/undelete": {
      "patch": {
        "tags": [
          "Job"
        ],
        "summary": "Undelete job",
        "description": "\nRestores a job that was previously soft-deleted (moved to the recycle bin) via\n`DELETE /api2/v1/projects/{projectUid}/jobs/batch` with `purge=false`, before it is permanently purged.\n\nIdempotent: calling this on a job that is not currently in the recycle bin is a no-op and still\nreturns `204 No Content`.\n",
        "operationId": "undeleteJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/workflowStep": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Get job's workflowStep",
        "description": "",
        "operationId": "getPartsWorkflowStep",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Project-specific_workflow_step_instance"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/jobs/statusChanges": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Get status changes for jobs",
        "description": "",
        "operationId": "listJobStatusChanges",
        "parameters": [
          {
            "name": "order",
            "in": "query",
            "description": "Sort order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartStatusChangesReferences"
              }
            }
          },
          "description": "Job references to retrieve status changes for",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectJobPartStatusChangesDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "List jobs",
        "description": "\nAPI call to return a paginated list of [jobs](https://support.phrase.com/hc/en-us/articles/5709686763420-Jobs-TMS-)\nin the given project.\n\nUse the query parameters to further narrow down the searching criteria.\n\n- **pageNumber** - A zero-based parameter indicating the page number you wish to retrieve. The total number of pages is\nreturned in each response in the `totalPages` field in the top level of the response.\n- **pageSize** - A parameter indicating the size of the page you wish to return.\nThis has direct effect on the `totalPages`\nretrieved in each response and can hence influence the number of times to iterate over to get all the jobs.\n- **count** - When set to `true`, the response will not contain the list of jobs (the `content` field) but only the\ncounts of elements and pages. Can be used to quickly retrieve the number of elements and pages to iterate over.\n- **workflowLevel** - A non-zero based parameter indicating which\n[workflow steps](https://support.phrase.com/hc/en-us/articles/5709717879324-Workflow-TMS-)\nthe returned jobs belong to. If left unspecified, its value is set to 1.\n- **status** - A parameter allowing for filtering only for jobs in a specific status.\n- **assignedUser** - A parameter allowing for filtering only for jobs assigned to a specific user.\nThe parameter accepts a user ID.\n- **dueInHours** - A parameter allowing for filtering only for jobs whose due date is less or equal to the number\n of hours specified. This does not exclude jobs by status - jobs already `DELIVERED`, `COMPLETED`, `CANCELLED`,\n `DECLINED` or `REJECTED` are still matched. Combine with `status` (excluding `DELIVERED`, `COMPLETED`,\n `CANCELLED`, `DECLINED` and `REJECTED`) to match the product's \"overdue\" definition.\n- **filename** - A parameter allowing for filtering only for jobs with a specific file name.\n- **targetLang** - A parameter allowing for filtering only for jobs with a specific target language.\n- **assignedVendor** - A parameter allowing for filtering only for jobs assigned to a specific vendor.\nThe parameter accepts a user ID.\n- **notReady** - A parameter allowing for filtering only jobs that have been imported. When set to `true` the response\n will only contain jobs that have not been imported yet.\n This will also return jobs that have not been imported correctly, e.g. due to an error.\n- **trashed** - When set to `true`, returns only jobs that are currently in the project's recycle bin\n(deleted but not yet permanently removed) instead of active jobs. By default (when `trashed` is not `true`),\ntrashed jobs are excluded from results regardless of what other filters are applied. A trashed job still counts as\nan associated job for DELETE /api2/v1/projects/{projectUid}/targetLangs, so use this parameter together with\n**targetLang** to find the job(s) blocking a target language removal.\n\nFor jobs assigned to one user across all projects, use GET /api2/v1/users/{userUid}/jobs instead.\n\nIf the project has been archived, this call returns `404 Not Found` instead of the jobs list, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.\n",
        "operationId": "listPartsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "workflowLevel",
            "in": "query",
            "description": "Workflow step to list jobs for. Returns jobs at the specified workflow step only. To retrieve jobs across all workflow steps in a project, call this endpoint once per step (workflowLevel=1, 2, 3, ...).",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ACCEPTED",
                  "DECLINED",
                  "REJECTED",
                  "DELIVERED",
                  "EMAILED",
                  "COMPLETED",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "assignedUser",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "dueInHours",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "filename",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLang",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "assignedVendor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "notReady",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "trashed",
            "in": "query",
            "description": "When true, returns only trashed (recycle bin) jobs for the project instead of active jobs",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoJobPartReferenceV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/pseudoTranslate": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Pseudo-translate job",
        "description": "",
        "operationId": "pseudoTranslateV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PseudoTranslateWrapperDtoV2"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/translations": {
      "delete": {
        "tags": [
          "Job"
        ],
        "summary": "Delete specific translations",
        "description": "",
        "operationId": "deleteAllTranslationsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReadyDeleteTranslationDtoV2"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/webEditor": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Get Web Editor URL",
        "description": "\nPossible warning codes are:\n  - `NOT_ACCEPTED_BY_LINGUIST` - Job is not accepted by linguist\n  - `NOT_ASSIGNED_TO_LINGUIST` - Job is not assigned to linguist\n  - `PDF` - One of requested jobs is PDF\n  - `PREVIOUS_WORKFLOW_NOT_COMPLETED` - Previous workflow step is not completed\n  - `PREVIOUS_WORKFLOW_NOT_COMPLETED_STRICT` - Previous workflow step is not completed and project has strictWorkflowFinish set to true\n  - `IN_DELIVERED_STATE` - Jobs in DELIVERED state\n  - `IN_COMPLETED_STATE` - Jobs in COMPLETED state\n  - `IN_REJECTED_STATE` - Jobs in REJECTED state\n\nPossible error codes are:\n  - `ASSIGNED_TO_OTHER_USER` - Job is accepted by other user\n  - `NOT_UNIQUE_TARGET_LANG` - Requested jobs contains different target locales\n  - `TOO_MANY_SEGMENTS` - Count of requested job's segments is higher than **40000**\n  - `TOO_MANY_JOBS` - Count of requested jobs is higher than **290**\n  - `COMPLETED_JOINED_WITH_OTHER` - Jobs in COMPLETED state cannot be joined with jobs in other states\n  - `DELIVERED_JOINED_WITH_OTHER` - Jobs in DELIVERED state cannot be joined with jobs in other states\n  - `REJECTED_JOINED_WITH_OTHER` - Jobs in REJECTED state cannot be joined with jobs in other states\n\nWarning response example:\n```\n{\n    \"warnings\": [\n        {\n            \"message\": \"Not accepted by linguist\",\n            \"args\": {\n                \"jobs\": [\n                    \"abcd1234\"\n                ]\n            },\n            \"code\": \"NOT_ACCEPTED_BY_LINGUIST\"\n        },\n        {\n            \"message\": \"Previous workflow step not completed\",\n            \"args\": {\n                \"jobs\": [\n                    \"abcd1234\"\n                ]\n            },\n            \"code\": \"PREVIOUS_WORKFLOW_NOT_COMPLETED\"\n        }\n    ],\n    \"url\": \"/web/job/abcd1234-efgh5678/translate\"\n}\n```\n\nError response example:\nStatus: `400 Bad Request`\n```\n{\n    \"errorCode\": \"NOT_UNIQUE_TARGET_LANG\",\n    \"errorDescription\": \"Only files with identical target languages can be joined\",\n    \"errorDetails\": [\n        {\n            \"code\": \"NOT_UNIQUE_TARGET_LANG\",\n            \"args\": {\n                \"targetLocales\": [\n                    \"de\",\n                    \"en\"\n                ]\n            },\n            \"message\": \"Only files with identical target languages can be joined\"\n        },\n        {\n            \"code\": \"TOO_MANY_SEGMENTS\",\n            \"args\": {\n                \"maxSegments\": 40000,\n                \"segments\": 400009\n            },\n            \"message\": \"Up to 40000 segments can be opened in the CAT Web Editor, job has 400009 segments\"\n        }\n    ]\n}\n```\n",
        "operationId": "webEditorLinkV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebEditorLinkDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebEditorLinkDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/{jobUid}/downloadTargetFile/{asyncRequestId}": {
      "get": {
        "tags": [
          "Job"
        ],
        "summary": "Download target file based on async request",
        "description": "\nThis call will return target file with translation. This means even for other jobs that were created via\n'split jobs' etc.\n\nThe asyncRequestId can be used only once. Once the download is initiated , the asyncRequestId becomes\ninvalid for further use.\n",
        "operationId": "downloadCompletedFile",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "asyncRequestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/octet-stream",
            "headers": {
              "Content-Disposition": {
                "description": "Contains filename (UTF-8 encoded). \n\n `filename*=UTF-8''ExampleFileName.md`",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/{jobUid}/targetFile": {
      "put": {
        "tags": [
          "Job"
        ],
        "summary": "Download target file (async)",
        "description": "\nThis call initiates an asynchronous request to generate and download the target file containing translations.\nThis request covers jobs created via actions like 'split jobs', ensuring accessibility even for such cases.\n\nTo monitor the status of this asynchronous request, you have two options:\n1. Use [Get asynchronous request](../async-request/get-asynchronous-request).\n2. Search for the asyncRequestId by utilizing [List pending requests](../async-request/list-pending-requests).\n\nIn contrast to the previous version (v1) of this call, v2 does not directly provide the target file within the response.\nOnce the asynchronous request is completed, you can download the target file using\n[Download target file based on async request](../job/download-target-file-based-on-async-request).\n\n_Note_: The asyncRequestId can be used only once. Once the download is initiated through `Download target file based on\nasync request`, the asyncRequestId becomes invalid for further use.\n\n_Note_: Issues with tags are a common cause of export failures (e.g. the file cannot be generated), especially for\nfile types like spreadsheets (MS Excel based) and .XML. Before exporting, run quality assurance checks to ensure\ntags and formatting are correct.\n",
        "operationId": "completedFileV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/jobs": {
      "patch": {
        "tags": [
          "Job"
        ],
        "summary": "Edit jobs (with possible partial updates)",
        "description": "Bulk update up to 100 jobs across multiple projects in a single call. Supports setting dateDue (due date), status, providers, and custom fields. Use this endpoint to update due dates or reassign jobs in bulk without iterating project-by-project. Allows partial update, not breaking the whole batch if a single job fails. Per-job failures are collected in the response errors list with codes: AccessDenied, NotFound, JobImportFailed, JobCannotAssignProviders. Assigning providers through this call does NOT send a notification email to the assigned providers. To notify providers of their assignment, call [Notify assigned users](../job/notify-assigned-users) with the emailTemplate.id of the template to send.",
        "operationId": "patchUpdateJobParts",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartPatchBatchDtoV3"
              }
            }
          },
          "description": "Job parts to update and the changes to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPartPatchResultDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/export": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Export jobs to online repository",
        "description": "\nWrites the target files of the selected jobs back to the project's connector/online repository —\nthe API equivalent of the UI's **Download > Export to online repository** action, and the reliable\nway to force a connector write-back on demand.\n\nJobs that were not sourced from a connector (no remote file) are silently skipped and omitted from\nthe response.\n\n**Response:** `jobs` contains only the subset of the requested jobs that were actually exported —\nit is not an echo of the request.\n\n**Diagnosing a failure:** Each export attempt creates a `connectorAsyncTasks` entry (`taskType: UPLOAD`).\nIts `errorMessage` carries the real per-file failure cause when a write-back fails. Read them via\n[Get Connector async task states](../connector/get-connector-async-task-states).\n",
        "operationId": "exportToOnlineRepository",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobExportActionDtoV3"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobExportResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/reimport": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Re-import remote files to selected jobs",
        "description": "\nRe-imports the source file of the selected jobs from the connector/online-repository they originally came from.\nJobs that were not sourced from a connector (no remote file) are silently skipped and omitted from the response.\n\n**Precondition:** None of the selected jobs may be split. If any job is split, the whole request fails with\n`400 REIMPORT_FROM_ONLINE_REPOSITORY_NOT_ALLOWED` and no job is re-imported.\n\n**Response:** `jobs` contains only the subset of the requested jobs that were actually re-imported —\nit is not an echo of the request. Jobs skipped because they have no connector/online-repository source\nare omitted without any error being raised.\n",
        "operationId": "reimportFromOnlineRepository",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobReimportActionDtoV3"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobReimportResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/reimportTarget": {
      "post": {
        "tags": [
          "Job"
        ],
        "summary": "Re-import remote file targets to selected jobs",
        "description": "\nRe-imports the target file of the selected jobs from the connector/online-repository they originally came from.\n\nJobs are silently skipped and omitted from the response in any of these cases:\n- The job was not sourced from a connector/online-repository (no remote file).\n- The job's connector type does not support target reimport — currently only `PHRASE`. Jobs sourced from\nother connector types (e.g. GitHub, GitLab, Sitecore, WordPress, Git) are always skipped.\n- The job was never exported to the online repository — a prior successful export is required before its\ntarget can be re-imported.\n\n**Response:** `jobs` contains only the subset of the requested jobs that were actually re-imported —\nit is not an echo of the request. Jobs skipped for any of the reasons above are omitted without any error\nbeing raised.\n",
        "operationId": "reimportTargetFromOnlineRepository",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobReimportTargetActionDtoV3"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobReimportResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/{jobUid}/targetFile": {
      "put": {
        "tags": [
          "Job"
        ],
        "summary": "Download target file (async)",
        "description": "\nThis call initiates an asynchronous request to generate and download the target file containing translations.\nThis request covers jobs created via actions like 'split jobs', ensuring accessibility even for such cases.\n\nTo monitor the status of this asynchronous request, you have three options:\n1. Use [Get asynchronous request](../async-request/get-asynchronous-request).\n2. Search for the asyncRequestId by utilizing [List pending requests](../async-request/list-pending-requests).\n3. Use callbackUrl to get notification that operation was finished\n\nIn contrast to the previous version (v1) of this call, v2 does not directly provide the target file within the response.\nOnce the asynchronous request is completed, you can download the target file using\n[Download target file based on async request](../job/download-target-file-based-on-async-request).\n\n_Note_: The asyncRequestId can be used only once. Once the download is initiated through `Download target file based on\nasync request`, the asyncRequestId becomes invalid for further use.\n\n_Note_: Issues with tags are a common cause of export failures (e.g. the file cannot be generated), especially for\nfile types like spreadsheets (MS Excel based) and .XML. Before exporting, run quality assurance checks to ensure\ntags and formatting are correct.\n",
        "operationId": "completedFileV3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DownloadTargetFileDtoV3"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/{jobUid}/transMemories/search": {
      "post": {
        "tags": [
          "Job",
          "Translation Memory"
        ],
        "summary": "Search job's translation memories",
        "description": "Results are scoped to the readable translation memories assigned to the job for its current workflow step. Access requires at least the Linguist role; lower roles are blocked.",
        "operationId": "searchByJob3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTMByJobRequestDtoV3"
              }
            }
          },
          "description": "Search request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTmDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/{jobUid}/transMemories/wildCardSearch": {
      "post": {
        "tags": [
          "Job",
          "Translation Memory"
        ],
        "summary": "Wildcard search job's translation memories",
        "description": "Results are scoped to the readable translation memories assigned to the job for its current workflow step. Access requires at least the Linguist role; lower roles are blocked.",
        "operationId": "wildCardSearchByJob3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WildCardSearchByJobRequestDtoV3"
              }
            }
          },
          "description": "Wildcard search request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTmDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/memsourceTranslateProfiles": {
      "get": {
        "tags": [
          "Language AI"
        ],
        "summary": "List of Language AI profiles",
        "description": "Returns a paginated list of Language AI (MT) profiles for the authenticated organization. The response item shape is identical to GET/POST/PUT of a single profile.",
        "operationId": "listMemsourceTranslateProfilesV2",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by profile name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Field to sort results by",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "dateCreated",
                "createdBy"
              ],
              "default": "name"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size; accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 10
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Profile kind to filter by",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "PLAI",
                "QUOKKA"
              ],
              "default": "PLAI"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateProfileV2PageDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Language AI"
        ],
        "summary": "Add Language AI profile",
        "description": "Creates a new profile from the organization default, or clones an existing profile when `cloneFromUid` is provided. Cloning a locked profile is rejected.",
        "operationId": "createMemsourceTranslateProfile",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemsourceTranslateProfileV2CreateRequestDtoV2"
              }
            }
          },
          "description": "Language AI profile creation request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateProfileV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/memsourceTranslateProfiles/categories": {
      "get": {
        "tags": [
          "Language AI"
        ],
        "summary": "List of Language AI engine categories",
        "description": "Per-org catalogue of available MT engine types, grouped by category. An empty PREDEFINED/PREDEFINED_CUSTOMIZABLE (native, fully managed) category means the organization is not entitled to native engines, not that engines are missing/deleted.",
        "operationId": "listMemsourceTranslateCategories",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoriesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/memsourceTranslateProfiles/{uid}": {
      "get": {
        "tags": [
          "Language AI"
        ],
        "summary": "Get Language AI profile",
        "description": "Returns the exact same object shape as a LIST item; the top-level `uid` is always the profile uid.",
        "operationId": "getMemsourceTranslateProfile",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateProfileV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Language AI"
        ],
        "summary": "Modify Language AI profile",
        "description": "Renames the profile. Rejected on a locked profile.",
        "operationId": "updateMemsourceTranslateProfile",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemsourceTranslateProfileV2UpdateDtoV2"
              }
            }
          },
          "description": "Profile update request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateProfileV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Language AI"
        ],
        "summary": "Delete Language AI profile",
        "description": "Rejected on a locked profile.",
        "operationId": "deleteMemsourceTranslateProfile",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/memsourceTranslateProfiles/{uid}/engines/statuses": {
      "get": {
        "tags": [
          "Language AI"
        ],
        "summary": "Get engine statuses of Language AI profile",
        "description": "Makes real-time calls to each MT engine backend to retrieve live status. Each entry includes the engine name.",
        "operationId": "getMemsourceTranslateProfileEngineStatuses",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateEnginesStatusesV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/memsourceTranslateProfiles/{uid}/glossaries": {
      "get": {
        "tags": [
          "Language AI"
        ],
        "summary": "Get glossaries attached to the profile",
        "description": "Requires the glossary feature to be enabled on the organization.",
        "operationId": "getMemsourceTranslateProfileGlossaries",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateProfileGlossariesV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/memsourceTranslateProfiles/{uid}/glossaries/{glossaryUid}": {
      "post": {
        "tags": [
          "Language AI"
        ],
        "summary": "Attach Glossary to Language AI profile",
        "description": "Requires the glossary feature to be enabled on the organization.",
        "operationId": "attachGlossary",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Glossary UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemsourceTranslateProfileGlossariesV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Language AI"
        ],
        "summary": "Remove Glossary from Language AI profile",
        "description": "Requires the glossary feature to be enabled on the organization.",
        "operationId": "removeGlossary",
        "parameters": [
          {
            "name": "uid",
            "in": "path",
            "description": "Profile UID. This is a Language AI profile uid, not a machine translate settings uid; for MT-engine settings operations, use GET/PUT/DELETE /api2/v1/machineTranslateSettings/{mtsUid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "glossaryUid",
            "in": "path",
            "description": "Glossary UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/languageAssets/search": {
      "post": {
        "tags": [
          "Language Assets"
        ],
        "summary": "Search language assets",
        "description": "Search across term bases and translation memories for matching language assets.\n\n**Search behavior:**\n- Translation memories: returns only 100% (exact) and 101% (in-context) matches. No fuzzy, wildcard, or sub-segment matching is supported.\n- Term bases: returns only approved terms matching the search text. No wildcard or partial matching.\n- Term base matches include the concept `definition` and `conceptNote`; source and target terms include `partOfSpeech`, `gender`, `number`, `termType`, `usage`, `note` and `shortTranslation`. Values that are not set are `null`.\n\n**Request limits:**\n- Max 50 queries per request, each up to 1000 characters.\n- Up to 100 translation memories and 100 term bases are searched.\n- Up to 10 TM matches returned per query text.\n- Optional `clientId` restricts to assets assigned to that client (or unassigned).\n\n**Execution:**\n- TM and TB searches run in parallel with a 20-second timeout.\n- Partial results are returned if one search times out or fails.\n- Check `metadata.tmSearchStatus` / `metadata.tbSearchStatus` (COMPLETED, TIMED_OUT, FAILED).\n- Returns HTTP 503 when the service is under heavy load.",
        "operationId": "searchLanguageAssets",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LanguageAssetsSearchRequestDtoLanguageAssetsV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LanguageAssetsSearchResponseDtoLanguageAssetsV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments": {
      "post": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Get multiple LQA Assessments",
        "description": "Returns Assessment results for given jobs.\nIf any given job is not from LQA workflow step, result from successive workflow steps may be returned",
        "operationId": "getAssessments",
        "requestBody": {
          "$ref": "#/components/requestBodies/AssessmentRequestDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentDetailsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Start multiple LQA Assessments",
        "description": "Starts LQA assessments for the given job parts.\n                    If any of them have the assessment already started or finished, they are left unchanged.",
        "operationId": "startAssessments",
        "requestBody": {
          "$ref": "#/components/requestBodies/AssessmentRequestDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentDetailsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Discard multiple ongoing LQA Assessments",
        "description": "Discards ongoing Language Quality Assessment (LQA) assessments for the given job parts in a single request. An assessment must be in the ongoing (started) state to be discarded; assessments that have not been started are silently skipped — no error is returned for them. Discarding is irreversible: discarded assessments cannot be resumed or recovered. Depending on your organization settings, job parts may be required to belong to the same project and workflow step; if that constraint is enforced, mixing job parts from different projects or steps returns 400. Use this endpoint to cancel in-progress assessments when a translation job is no longer needed. The request body must contain between 1 and 100 job part UIDs.",
        "operationId": "discardOngoingAssessments",
        "requestBody": {
          "$ref": "#/components/requestBodies/AssessmentRequestDtoV1"
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/edit": {
      "put": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Edit multiple LQA assessments",
        "description": "Marks assessments for the given as edited",
        "operationId": "editAssessments",
        "requestBody": {
          "$ref": "#/components/requestBodies/AssessmentRequestDtoV1"
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentDetailsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/reports": {
      "get": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Download LQA Assessment XLSX reports",
        "description": "Use this endpoint to export completed Language Quality Assessment (LQA) results as XLSX files for offline review, auditing, or integration with external quality management tools. Each XLSX report corresponds to one job part that has passed through an LQA workflow step in Phrase TMS.\n\nWhen a single matching job part is found, the response is a single XLSX file. When multiple matching job parts are found, the response is a ZIP archive containing one XLSX file per job part. The response Content-Type is always application/octet-stream; the actual file format is conveyed by the filename extension in the Content-Disposition header.\n\nIf a given job part has not yet reached an LQA workflow step, reports from the next successive workflow step that has results may be returned instead. Job parts must share a workflow step and, unless multi-project LQA is enabled for your organization, a project; otherwise the endpoint returns 400. If no downloadable reports are found for any of the provided job part UIDs, the endpoint returns 404. Linguist users can only download reports when the project security settings permit it and LQA is enabled for the organization.\n\nThe returned filename is deterministic and cannot be customized through any request parameter. For a single job part it is LQA_{projectName}_{sourceLang}_{targetLang}_{jobFileName}.xlsx, with the full pre-extension string truncated to 250 characters. For multiple job parts it is LQA_{projectName}_{id}.zip, where {id} is an internal LQA-service batch identifier, not a project-level one. The only way to influence the filename is to rename the project or the job file before generating the report.",
        "operationId": "downloadLqaReports",
        "parameters": [
          {
            "name": "jobParts",
            "in": "query",
            "description": "Comma-separated list of job part UIDs.",
            "required": true,
            "example": "KV7zn4sdgOBiMkp6Mf3rU2,LM9xa1bcPCjNlqr8Ng4sV3",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2147483647
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request — jobParts missing or empty, or job parts mix workflow steps (or projects)"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden — linguist users require the project to allow LQA report downloads and LQA must be enabled for the organization"
          },
          "404": {
            "description": "Not Found — no downloadable LQA reports exist for any of the provided job part UIDs"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/reports/emails": {
      "post": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Send email(s) with LQA reports",
        "description": "Sends LQA (Language Quality Assessment) report emails to one or more recipients for the specified job parts. Use this to notify reviewers or project stakeholders when assessments are complete and the report is ready for review.\n\nThe service generates exactly one time-limited download link for the entire request — never one link per job part — from the completed LQA reports for the supplied job parts, and attaches it to the outgoing email. This holds even when the email template repeats content per job part, for example via the {jobInfo}...{/jobInfo} loop macro: every repetition resolves to the same single link. The link is a single XLSX when exactly one job part is supplied, or a single ZIP archive (one XLSX per job part) when more than one job part is supplied. The link expires after 5 days by default. Each request may target up to 100 job parts and 100 recipient users; all job parts must belong to the same project. When organizationEmailTemplate is supplied, its body is used as the email template; the optional message field replaces the template body when both are provided, or is inserted into the default email template when no organizationEmailTemplate is given. If subject is provided it must be at least 1 character; null uses the default subject from the template. The ccAddress and bccAddress fields must be valid email addresses.\n\nRequires the Administrator or Project Manager role. Returns 404 when none of the specified job parts have a downloadable LQA report.",
        "operationId": "sendLqaReportEmails",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LqaReportEmailRequestDtoV1"
              }
            }
          },
          "description": "Email request specifying job parts, recipients, and optional email content.",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/reports/link": {
      "get": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Get sharable link of LQA reports",
        "description": "Returns exactly one time-limited download link covering all the supplied job parts — never one link per job part. The link resolves to a single XLSX when the request contains exactly one job part, or a single ZIP archive (one XLSX per job part) when it contains more than one.",
        "operationId": "getLqaReportLink",
        "parameters": [
          {
            "name": "jobParts",
            "in": "query",
            "description": "Comma separated list of JobPart UIDs",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2147483647
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaReportLinkDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/reports/recipients": {
      "get": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Get recipients of email with LQA reports",
        "description": "",
        "operationId": "getLqaReportRecipients",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "jobParts",
            "in": "query",
            "description": "Comma separated list of JobPart UIDs",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2147483647
            }
          },
          {
            "name": "nameOrEmail",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoLqaReportRecipientDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/results": {
      "post": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Get LQA Assessment results",
        "description": "Returns Language Quality Assessment (LQA) scoring results for one or more job parts. Each result includes the score as a percentage (0–100), a PASS or FAIL verdict based on the project's configured LQA threshold, and a breakdown of issue counts by severity. Use this endpoint after assessments have been completed to retrieve scores for reporting or downstream automation. Job parts with no completed assessment are omitted from the response. Accepts between 1 and 100 job part UIDs per request.\n\nErrors:\n\n| Code | Condition | Action |\n|------|-----------|--------|\n| 400 BAD_REQUEST | The request body is missing, jobParts is empty, or exceeds 100 UIDs. | Verify the request body is present and that jobParts has between 1 and 100 entries. |\n| 403 FORBIDDEN | The caller lacks read access to one or more job parts. | Confirm the authenticated user has view permission on all requested job parts. |\n| 404 NOT_FOUND | One or more job part UIDs do not exist. | Verify all UIDs refer to existing job parts. |",
        "operationId": "getAssessmentResultsV1",
        "requestBody": {
          "$ref": "#/components/requestBodies/AssessmentRequestDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AssessmentResultDtoV1"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/scorings": {
      "put": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Finish multiple LQA Assessments",
        "description": "Finishing LQA Assessments will calculate scores",
        "operationId": "finishAssessments",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinishAssessmentsDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentResultsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Discard multiple finished LQA Assessment results",
        "description": "",
        "operationId": "discardAssessmentResults",
        "requestBody": {
          "$ref": "#/components/requestBodies/AssessmentRequestDtoV1"
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/{jobUid}": {
      "get": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Get LQA Assessment",
        "description": "Retrieves the Language Quality Assessment (LQA) status and results for a single job. Use this endpoint after a reviewer finishes an LQA workflow step to read the MQM (Multidimensional Quality Metrics)-based score, issue counts by severity, and the pass/fail determination before advancing the job to the next step.\n\nIf the requested job is not in an LQA workflow step, the assessment from the nearest successive LQA-enabled step is returned instead.\n\nThe caller must have read access to the job's project. Roles without project visibility receive a 403 response (`FORBIDDEN`). To resolve a 403, ensure your API token belongs to a user with at least read access to the project containing this job. To resolve a 404 (`ResourceNotFound`), verify the jobUid is correct and the job has not been deleted or archived.\n\nNote: the example response is abbreviated for readability; the full response includes all fields such as `issueCounts` (with `criticalRepeated`, `majorRepeated`, `minorRepeated`, `neutralRepeated`) and `lqaProfile` (with `errorCategories`, `penaltyPoints`, `passFailThreshold`, `dateCreated`, `organization`).",
        "operationId": "getLqaAssessment",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job to retrieve the LQA assessment for. A base62 alphanumeric string (case-sensitive) as returned by job creation endpoints.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentDetailDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Start LQA Assessment",
        "description": "Starts a Language Quality Assessment (LQA) for a single job part identified by its unique identifier (UID). LQA evaluates translation quality against the profile assigned to the job part's workflow step, scoring errors by category and severity in line with MQM (Multidimensional Quality Metrics) methodology.\n\nUse this endpoint after a job part has been translated and is ready for linguistic review. The returned profile captures the error categories, severity weights, and pass/fail threshold that reviewers will apply when annotating the assessment.\n\nIf an assessment is already in progress or finished for the given job part, the existing assessment is discarded and a new one is started. All previously recorded errors are lost; this operation is not safe to retry without accepting data loss.\n\n**Error conditions:**\n\n- **400 Bad Request** — LQA is not configured for the job part's workflow step. Configure LQA for the workflow step in the project settings before starting an assessment.\n- **403 Forbidden (Auto LQA enabled)** — The project has Automatic LQA enabled. Disable Auto LQA in the project settings to use manual assessments.\n- **403 Forbidden (insufficient permission)** — The caller does not have edit permission on the job part. Request edit access from a project manager or administrator.\n- **404 Not Found** — No job part exists for the provided UID. Verify the jobUid is correct and belongs to a project accessible to the caller.",
        "operationId": "startLqaAssessment",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "Unique identifier (UID) of the job part to assess",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssessmentBasicDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Discard ongoing LQA Assessment",
        "description": "Discards the in-progress Language Quality Assessment (LQA) for the specified job, removing all recorded issues and resetting the assessment state. Use this when an assessment was started in error or needs to be restarted from scratch.\n\nThe operation is synchronous and returns 204 No Content immediately on success. Calling this endpoint when no assessment is in progress is safe.\n\nThe caller must have edit permission on the job. When the project uses auto-LQA mode, only users belonging to the same organization as the job may discard assessments.\n\n| HTTP status | Condition                                                                              |\n|-------------|----------------------------------------------------------------------------------------|\n| 204         | Assessment discarded successfully, or no assessment was in progress.                   |\n| 403         | Caller lacks edit permission on the job, or belongs to a different organization in     |\n|             | auto-LQA mode. Verify the token has sufficient privileges and retry.                   |\n| 404         | No job with the supplied UID exists or is visible to the caller. Check the UID value.  |\n",
        "operationId": "discardOngoingAssessment",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job whose in-progress LQA assessment should be discarded",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/assessments/{jobUid}/scorings": {
      "put": {
        "tags": [
          "Language Quality Assessment"
        ],
        "summary": "Finish LQA Assessment",
        "description": "Finishing LQA Assessment will calculate score",
        "operationId": "finishAssessment",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FinishAssessmentDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScoringResultDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslations/{mtSettingsUid}/translate": {
      "post": {
        "tags": [
          "Machine Translation"
        ],
        "summary": "Translate with MT",
        "description": "Sends one or more source strings to the machine translation (MT) engine identified by the MT settings UID and returns the translated strings in the same order as the input. This call is synchronous — the response contains the translations directly, not a job reference.\n\nUse this endpoint to obtain on-demand MT output outside of a translation job, for example to pre-translate content in a custom workflow or to compare output quality across configured MT settings.\n\nThe MT settings identified by mtSettingsUid must belong to the same organization as the authenticated user. If the MT engine type has been retired for the organization's pricing plan, the call returns 400.\n\n**Errors:**\n\n| HTTP status | errorCode | Cause | Remediation |\n|---|---|---|---|\n| 400 | BAD_REQUEST | Request body is malformed, a required field is missing, a language code is not a valid locale, sourceTexts is empty, or the MT engine type is retired for this plan. | Verify that from and to are valid language codes, sourceTexts contains at least one string, and the MT settings refer to an active engine type. |\n| 403 | AuthAccessDenied | The authenticated user does not belong to the same organization as the MT settings. | Use MT settings that belong to your organization. |\n| 404 | ResourceNotFound | No MT settings exist for the provided mtSettingsUid. | Check the UID value; retrieve valid UIDs from the MT settings list endpoint. |\n",
        "operationId": "machineTranslation",
        "parameters": [
          {
            "name": "mtSettingsUid",
            "in": "path",
            "description": "UID of the MT settings identifying the MT engine to use.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationRequestExtendedDtoV1"
              }
            }
          },
          "description": "Translation request body.",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "List machine translate settings",
        "description": "Accessible to project managers without the 'Modify Server Setup' right. Returns only top-level (parent) MT-engine settings; child engines belonging to a Language AI profile are excluded — use GET /api2/v2/memsourceTranslateProfiles for those.",
        "operationId": "getList",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Filter by engine type, e.g. QUOKKA",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorting order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "asc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateSettingsPbmPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Create new machine translate settings",
        "description": "\nTo add required secrets for each type use endpoint - [Set up secrets](#operation/setUpMachineTranslateSettingsSecrets)\n\nAdding secrets to Google AutoML use - [Set up Google AutoML secrets](#operation/uploadAccountKeyFileForGoogleAutoMl)\n",
        "operationId": "createMachineTranslateSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
              }
            }
          },
          "description": "Machine translate settings to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/thirdPartyEngines": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "List third party machine translate settings",
        "description": "Accessible to project managers without the 'Modify Server Setup' right.",
        "operationId": "getThirdPartyEnginesList",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeDeprecated",
            "in": "query",
            "description": "When true, includes deprecated engines",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 100, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorting order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "asc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateSettingsPbmPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/types": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Get machine translate settings types",
        "description": "Returns valid type strings for POST /machineTranslateSettings (e.g. GoogleTranslate, AMAZON). Call this before creating a new MT engine to discover supported types. Accessible to project managers without the 'Modify Server Setup' right.",
        "operationId": "getMTTypes",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TypesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/{mtsUid}": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Get machine translate settings",
        "description": "Accessible to project managers without the 'Modify Server Setup' right.",
        "operationId": "getMTSettings",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateSettingsPbmDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Update machine translate settings",
        "description": "\nYou can update existing settings ONLY with settings with the same type. It is forbidden to change type of settings using\nthis API operation.\n",
        "operationId": "updateMachineTranslateSettings",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
              }
            }
          },
          "description": "Machine translate settings update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Delete machine translate settings",
        "description": "Deletion is a no-op for Language AI profile wrapper engines (MemsourceTranslateSettings); the request succeeds with 204 but no data is removed.",
        "operationId": "deleteMachineTranslateSettings",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/{mtsUid}/labels": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Get machine Google AutoML labels",
        "description": "",
        "operationId": "getGoogleAutoMLLabels",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoogleAutoMlTranslateSettingsLabelsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Set up Google AutoML labels",
        "description": "",
        "operationId": "setUpGoogleAutoMlLabels",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GoogleAutoMlTranslateSettingsLabelsDtoV1"
              }
            }
          },
          "description": "Google AutoML labels to set up",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/{mtsUid}/secrets": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Get machine translate settings secrets",
        "description": "",
        "operationId": "getMachineTranslateSettingsSecrets",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Set up machine translate settings secrets",
        "description": "\nIt is possible to only add secrets to existing settings with corresponding secrets type e.g it is possible to add only\nAmazon specific secrets to the Amazon type settings.\n\nYou should also use this method for updating secrets for settings\n",
        "operationId": "setUpMachineTranslateSettingsSecrets",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
              }
            }
          },
          "description": "Machine translate settings secrets",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/{mtsUid}/secrets/upload": {
      "put": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Upload service account key for Google AutoML",
        "description": "For file in the request body provide also the filename in Content-Disposition header.",
        "operationId": "uploadAccountKeyFileForGoogleAutoMl",
        "parameters": [
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?(filename\\*=UTF-8''(.+)|filename=\"?(.+)\"?)`",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies an MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile uid; for Language AI profile operations, use GET/PUT/DELETE /api2/v2/memsourceTranslateProfiles/{uid} instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream2"
        },
        "responses": {
          "201": {
            "description": "Created"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/machineTranslateSettings/{mtsUid}/status": {
      "get": {
        "tags": [
          "Machine Translation Settings"
        ],
        "summary": "Get status of machine translate engine",
        "description": "Makes a real-time call to the MT engine's backend and reports whether it responded successfully. Not supported for a Language AI profile wrapper uid (type MEMSOURCE_TRANSLATE_SETTINGS) — such a call returns 400 Bad Request with \"It is not possible to call status endpoint with Language AI profile wrapper\". To check Phrase Language AI engine health, use GET /api2/v2/memsourceTranslateProfiles/{uid}/engines/statuses instead.",
        "operationId": "getStatus",
        "parameters": [
          {
            "name": "mtsUid",
            "in": "path",
            "description": "Machine translate settings UID. Identifies a standalone MT-engine settings entry (see GET /machineTranslateSettings), not a Language AI profile wrapper uid (type MEMSOURCE_TRANSLATE_SETTINGS) — passing a Language AI profile wrapper uid returns 400 Bad Request. To check Phrase Language AI engine health, use GET /api2/v2/memsourceTranslateProfiles/{uid}/engines/statuses instead.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateStatusDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/mappings/tasks/{id}": {
      "get": {
        "tags": [
          "Mapping"
        ],
        "summary": "Returns mapping for taskId (mxliff)",
        "description": "Requires view right on the Job. workflowLevel defaults to 1 (range 1-15).",
        "operationId": "getMappingForTask",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Server task ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowLevel",
            "in": "query",
            "description": "Workflow level (defaults to 1)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskMappingDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/metabase/personalCollection": {
      "get": {
        "tags": [
          "Metabase"
        ],
        "summary": "Get Personal collection items",
        "description": "Lists the dashboards and questions saved in the current user's own Advanced Analytics (Metabase) Personal collection.",
        "operationId": "getPersonalCollection",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CollectionItemsDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/metabase/sharedCollections": {
      "get": {
        "tags": [
          "Metabase"
        ],
        "summary": "List shared collections",
        "description": "Lists the Advanced Analytics (Metabase) shared collections available to the current user's organization, together with the dashboards and questions saved in each of them.",
        "operationId": "getSharedCollections",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SharedCollectionDtoV1"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/netRateSchemes": {
      "get": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "List net rate schemes",
        "description": "Returns a paged list of net rate scheme references for the caller's organization, ordered by creation date (newest first) by default; a saved per-user list sort, when present, takes precedence. Optional query parameters filter the result set. Requires an internal role (Admin or Project Manager).",
        "operationId": "getDiscountSchemes",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Zero-based page index",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "isDefault",
            "in": "query",
            "description": "Filter by default attribute",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "createdInLastHours",
            "in": "query",
            "description": "Filter for those created within given hours",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateSchemeReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/netRateSchemes/{netRateSchemeUid}": {
      "delete": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Delete net rate scheme",
        "description": "Deletes the net rate scheme identified by its UID. Requires an internal role (Admin or Project Manager) with the setup-server right; the scheme must belong to the caller's organization.",
        "operationId": "deleteDiscountScheme",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "description": "Net rate scheme UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/netRateSchemes/{netRateSchemeUid}/clone": {
      "post": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Clone net rate scheme",
        "description": "Creates a copy of the net rate scheme identified by its UID, including all of its workflow-step rate settings. The clone is never marked as the organization default. Returns 200 (not 201) because the created DTO is returned directly. Non-translatable (NT) rate fields are returned as zero when the organization edition does not include the non-translatables-in-analyses feature. Requires an internal role (Admin or Project Manager) with the setup-server right; the scheme must belong to the caller's organization.",
        "operationId": "cloneDiscountScheme",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "description": "Net rate scheme UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateScheme"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/netRateSchemes/{netRateSchemeUid}/workflowStepNetSchemes": {
      "get": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "List schemes for workflow step",
        "description": "Returns a paged list of the workflow-step rate references of the given net rate scheme. Requires an internal role (Admin or Project Manager); the scheme must belong to the caller's organization.",
        "operationId": "getDiscountSchemeWorkflowSteps",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "description": "Net rate scheme UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Zero-based page index",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountSchemeWorkflowStepReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/netRateSchemes/{netRateSchemeUid}/workflowStepNetSchemes/{netRateSchemeWorkflowStepId}": {
      "get": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Get scheme for workflow step",
        "description": "Returns the workflow-step-specific rates of the given net rate scheme. Non-translatable (NT) rate fields are returned as zero when the organization edition does not include the non-translatables-in-analyses feature. Requires an internal role (Admin or Project Manager) with the setup-server right; the scheme must belong to the caller's organization.",
        "operationId": "getDiscountSchemeWorkflowStep",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "description": "Net rate scheme UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "netRateSchemeWorkflowStepId",
            "in": "path",
            "description": "Net rate scheme workflow step ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateSchemeWorkflowStep"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Edit scheme for workflow step",
        "description": "Updates the workflow-step-specific rates of the given net rate scheme. Non-translatable (NT) rate fields are returned as zero when the organization edition does not include the non-translatables-in-analyses feature. Requires an internal role (Admin or Project Manager) with the setup-server right; the scheme must belong to the caller's organization.",
        "operationId": "editDiscountSchemeWorkflowStep",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "description": "Net rate scheme UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "netRateSchemeWorkflowStepId",
            "in": "path",
            "description": "Net rate scheme workflow step ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetRateSchemeWorkflowStepEdit"
              }
            }
          },
          "description": "Workflow step rate changes",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateSchemeWorkflowStep"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/netRateSchemes": {
      "post": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Create net rate scheme",
        "description": "",
        "operationId": "createDiscountSchemeV2",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateEditDiscountSchemeDtoV2"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateScheme"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/netRateSchemes/{netRateSchemeUid}": {
      "get": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Get net rate scheme",
        "description": "",
        "operationId": "getDiscountSchemeV2",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateScheme"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Net Rate Scheme"
        ],
        "summary": "Edit net rate scheme",
        "description": "",
        "operationId": "editDiscountSchemeV2",
        "parameters": [
          {
            "name": "netRateSchemeUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateEditDiscountSchemeDtoV2"
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetRateScheme"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/notifications": {
      "get": {
        "tags": [
          "Notifications"
        ],
        "summary": "List notifications",
        "description": "Returns notifications scoped to the currently authenticated user. Results are paginated and sorted by date created (DATE_CREATED). The response includes a responseTimestamp. Authentication is required; unauthenticated requests are rejected with 403 Forbidden.",
        "operationId": "listNotificationsForUser",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 20",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "category",
            "in": "query",
            "description": "Filtered by notification category",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "PINNED",
                "SEEN",
                "UNSEEN"
              ]
            }
          },
          {
            "name": "createdBeforeDate",
            "in": "query",
            "description": "Filtered by create date time in ISO 8601 UTC format",
            "required": false,
            "example": "2024-05-25T10:15:30.00Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdAfterDate",
            "in": "query",
            "description": "Filtered by create date time in ISO 8601 UTC format",
            "required": false,
            "example": "2024-05-21T10:15:30.00Z",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        }
      }
    },
    "/api2/v1/priceLists": {
      "get": {
        "tags": [
          "Price List"
        ],
        "summary": "List price lists",
        "description": "",
        "operationId": "getListOfPriceList",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "post": {
        "tags": [
          "Price List"
        ],
        "summary": "Create price list",
        "description": "If isDefault is set to true, the default flag is cleared on all other price lists",
        "operationId": "createPriceList",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationPriceListCreateDtoV1"
              }
            }
          },
          "description": "Price list to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/exportTemplate": {
      "get": {
        "tags": [
          "Price List"
        ],
        "summary": "Export translation price list template",
        "description": "Returns an empty price list template as a binary XLSX file.",
        "operationId": "exportPriceListTemplate",
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}": {
      "get": {
        "tags": [
          "Price List"
        ],
        "summary": "Get price list",
        "description": "",
        "operationId": "getPriceList",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListDtoV1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "put": {
        "tags": [
          "Price List"
        ],
        "summary": "Update price list",
        "description": "If isDefault is set to true, the default flag is cleared on all other price lists",
        "operationId": "updatePriceList",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationPriceListCreateDtoV1"
              }
            }
          },
          "description": "Updated price list",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "delete": {
        "tags": [
          "Price List"
        ],
        "summary": "Delete price list",
        "description": "",
        "operationId": "deletePriceList",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/clone": {
      "post": {
        "tags": [
          "Price List"
        ],
        "summary": "Clone price list",
        "description": "",
        "operationId": "clonePriceList",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListDtoV1"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/export": {
      "get": {
        "tags": [
          "Price List"
        ],
        "summary": "Export translation price list",
        "description": "Returns the price list as a binary XLSX file.",
        "operationId": "exportPriceList",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/import": {
      "post": {
        "tags": [
          "Price List"
        ],
        "summary": "Import translation price list",
        "description": "Returns a parsed preview with per-row validation errors. Prices are not persisted.",
        "operationId": "importPriceList",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "multipart/form-data"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "description": "XLSX file to upload",
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListForImport"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/priceSets": {
      "get": {
        "tags": [
          "Price List"
        ],
        "summary": "List price sets",
        "description": "",
        "operationId": "getPricesWithWorkflowSteps",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sourceLanguages",
            "in": "query",
            "description": "Filter by source language code",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "targetLanguages",
            "in": "query",
            "description": "Filter by target language code",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceSetPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "post": {
        "tags": [
          "Price List"
        ],
        "summary": "Add language pairs",
        "description": "",
        "operationId": "createLanguagePair",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationPriceSetCreateDtoV1"
              }
            }
          },
          "description": "Language pairs to add",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceSetListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      },
      "delete": {
        "tags": [
          "Price List"
        ],
        "summary": "Remove language pairs",
        "description": "",
        "operationId": "deleteLanguagePairs",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationPriceSetBulkDeleteDtoV1"
              }
            }
          },
          "description": "Language pairs to delete",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/priceSets/minimumPrices": {
      "post": {
        "tags": [
          "Price List"
        ],
        "summary": "Edit minimum prices",
        "description": "Applies the minimum price to all language pairs for the given source and target language filters.",
        "operationId": "setMinimumPriceForSet",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationPriceSetBulkMinimumPricesDtoV1"
              }
            }
          },
          "description": "Minimum prices to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/priceSets/prices": {
      "post": {
        "tags": [
          "Price List"
        ],
        "summary": "Edit prices",
        "description": "If object contains only price, all languages and workflow steps will be updated.",
        "operationId": "setPrices",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationPriceSetBulkPricesDtoV1"
              }
            }
          },
          "description": "Prices to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranslationPriceListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/priceLists/{priceListUid}/priceSets/{sourceLanguage}/{targetLanguage}": {
      "delete": {
        "tags": [
          "Price List"
        ],
        "summary": "Remove language pair",
        "description": "",
        "operationId": "deleteLanguagePair",
        "parameters": [
          {
            "name": "priceListUid",
            "in": "path",
            "description": "Unique identifier of the price list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceLanguage",
            "in": "path",
            "description": "Source language code",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLanguage",
            "in": "path",
            "description": "Target language code",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        }
      }
    },
    "/api2/v1/projects": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "List projects",
        "description": "\nAPI call to retrieve a paginated list of projects. Contains a subset of information contained in\n[Get project](../project/get-project) API call.\n\nUtilize the query parameters below to refine the search criteria:\n\n- **name** - The full project name or a portion of it. For instance, using `name=GUI` or `name=02` will find projects\nnamed `GUI02`.\n- **clientId** - The client's ID within the system, not interchangeable with its UID.\n- **clientName** - The complete or partial name of the client. For example, using `clientName=GUI` or `clientName=02`\nwill find projects associated with the client `GUI02`.\n- **businessUnitId** - The business unit's ID within the system, not interchangeable with its UID.\n- **businessUnitName** - The complete or partial name of the business unit. For instance, using `businessUnitName=GUI`\nor `businessUnitName=02` will find projects linked to the business unit `GUI02`.\n- **statuses** - A list of project statuses. When adding multiple statuses, include each as a dedicated query\nparameter, e.g., `statuses=ASSIGNED&statuses=COMPLETED`.\n- **domainId** - The domain's ID within the system, not interchangeable with its UID. Domain is the\norg-configurable field used to tag/categorize a project's content type, e.g. Marketing, Legal, Medical, Technical.\n- **domainName** - The complete or partial name of the domain, the org-configurable field used to tag/categorize a\nproject's content type (e.g. Marketing, Legal, Medical, Technical). Using `domainName=GUI` or `domainName=02` will\nfind projects associated with the domain `GUI02`.\n- **subDomainId** - The subdomain's ID within the system, not interchangeable with its UID. Subdomain further\nrefines the domain's content-type/category classification.\n- **subDomainName** - The complete or partial name of the subdomain, used together with domain to further refine a\nproject's content-type/category classification. For example, using `subDomainName=GUI` or `subDomainName=02` will\nfind projects linked to the subdomain `GUI02`.\n- **costCenterId** - The cost center's ID within the system, not interchangeable with its UID.\n- **costCenterName** - The complete or partial name of the cost center. For instance, using `costCenterName=GUI` or\n`costCenterName=02` will find projects associated with the cost center `GUI02`.\n- **dueInHours** - Filter for jobs with due dates less than or equal to the specified number of hours. This filter\ndoes not exclude jobs by status - jobs already `DELIVERED`, `COMPLETED`, `CANCELLED`, `DECLINED` or `REJECTED` are\nstill included. To match the product's \"overdue\"/\"delayed\" definition (as used e.g. in the Time dashboard), combine\n`dueInHours=-1` with `jobStatuses` excluding `DELIVERED`, `COMPLETED`, `CANCELLED`, `DECLINED` and `REJECTED`.\n- **createdInLastHours** - Filter for jobs created within the specified number of hours.\n- **ownerId** - The user ID who owns the project within the system, not interchangeable with its UID.\n- **jobStatuses** - A list of statuses for jobs within the projects. Include each status as a dedicated query parameter,\ne.g., `jobStatuses=ASSIGNED&jobStatuses=COMPLETED`.\n- **jobStatusGroup** - The name of the status group used to filter projects containing at least one job with the\nspecified status, similar to the status filter in the Projects list for a Linguist user.\n- **buyerId** - The Buyer's ID.\n- **templateUid** - The UID of the project template the project was created from.\n- **pageNumber** - Indicates the desired page number (zero-based) to retrieve. The total number of pages is returned in\nthe `totalPages` field within each response.\n- **pageSize** - Indicates the page size, affecting the `totalPages` retrieved in each response and potentially\ninfluencing the number of iterations needed to obtain all projects.\n- **nameOrInternalId** - Specify either the project name or Internal ID (the sequence number in the project list\ndisplayed in the UI).\n- **includeArchived** - A boolean parameter to include archived projects in the search.\n- **archivedOnly** - A boolean search indicating whether only archived projects should be searched.\n\nAny query parameter not listed above is rejected with a 400 Bad Request rather than being silently ignored.\n",
        "operationId": "listProjects",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "businessUnitId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "businessUnitName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ASSIGNED",
                  "COMPLETED",
                  "ACCEPTED_BY_VENDOR",
                  "DECLINED_BY_VENDOR",
                  "COMPLETED_BY_VENDOR",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "targetLangs",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "domainId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "domainName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "subDomainName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "costCenterName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueInHours",
            "in": "query",
            "description": "-1 for projects with jobs due in the past. Does not exclude jobs by status - DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED jobs are still matched. Combine with jobStatuses (excluding DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED) to match the product's \"overdue\" definition.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": -1
            }
          },
          {
            "name": "createdInLastHours",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0
            }
          },
          {
            "name": "sourceLangs",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "ownerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "jobStatuses",
            "in": "query",
            "description": "Allowed for linguists only",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ACCEPTED",
                  "DECLINED",
                  "DELIVERED",
                  "EMAILED",
                  "COMPLETED",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "jobStatusGroup",
            "in": "query",
            "description": "Allowed for linguists only",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "ACCEPTED",
                "COMPLETED"
              ]
            }
          },
          {
            "name": "buyerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "templateUid",
            "in": "query",
            "description": "UID of the project template the project was created from",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "nameOrInternalId",
            "in": "query",
            "description": "Name or internal ID of project",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeArchived",
            "in": "query",
            "description": "List also archived projects",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "archivedOnly",
            "in": "query",
            "description": "List only archived projects, regardless of includeArchived",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ID",
                "INTERNAL_ID",
                "NAME",
                "DATE_CREATED",
                "DATE_ARCHIVED"
              ],
              "default": "ID"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get project",
        "description": "\nThis API call retrieves information specific to a project.\n\nThe level of detail in the response varies based on the user's role. Admins, Project Managers, Vendors, Buyers, and\nLinguists receive different responses, detailed below.\n\n- Details about predefined system metadata, such as client, domain, subdomain, cost center, business unit, or status.\nNote that [Custom Fields](../custom-fields/lists-custom-fields), if added to projects, are not included here and require\nretrieval via a dedicated Custom Fields API call. Metadata exposed to Linguists or Vendors might differ from what's\nvisible to Admins or Project Managers.\n- [Workflow Step](https://support.phrase.com/hc/en-us/articles/5709717879324-Workflow-TMS-) information, crucial for\nuser or vendor assignments through APIs. When projects are created, each workflow step's global ID instantiates into a\nproject-specific workflow step ID necessary for user assignments. Attempting to assign the global workflow step ID\n(found under Settings or via Workflow Step APIs) results in an error, as only the project-specific step can be assigned.\n- Progress information indicating the total number of jobs across all workflow steps in the project, alongside the\nproportion of completed and overdue jobs.\n\nIf the project has been archived, this call returns `404 Not Found` instead, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.\n",
        "operationId": "getProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project"
        ],
        "summary": "Delete project",
        "description": "\nDeletes the specified project.\n\n- When `purge = false` (default):\n  The project, along with all its jobs and analyses, is soft-deleted and moved to the recycle bin,\n  where it remains recoverable until permanently removed.\n\n- When `purge = true`:\n  The project, its jobs, and its analyses are marked for immediate permanent deletion and are not\n  visible in the recycle bin. A background cleaner process will remove all related data as soon as possible.\n\nIf the project has already been archived, this call returns `404 Not Found` instead, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.\n",
        "operationId": "deleteProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purge",
            "in": "query",
            "description": "When true, permanently deletes immediately; when false (default) moves to recycle bin",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "patch": {
        "tags": [
          "Project"
        ],
        "summary": "Edit project (partial: metadata, cost center, MT settings, workflow automation, archive)",
        "description": "\nPartial update — unlike PUT /api2/v3/projects/{projectUid} (full replace), only fields present in\nthe request body are changed; omitted fields are left unchanged. Exception: if `projectWorkflowSettings`\nis provided, all of its fields (`completeUnassigned`, `propagateTranslationsToLowerWfDuringUpdateSource`)\nare replaced together — include both to avoid silently resetting the other to `false`.\n\nAlso used to: archive a project (`archived` field — unarchive via\nPATCH /api2/v1/projects/{projectUid}/restore); assign a cost center; set machine translate settings\nproject-wide or per target language; and enable workflow automation\n(`projectWorkflowSettings.completeUnassigned`) to auto-complete unassigned workflow steps on an\nactive project regardless of its current status — this is the only endpoint that can change\nworkflow automation on a live project (project templates use PUT /api2/v2/projectTemplates/{uid}\ninstead).\n    ",
        "operationId": "patchProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Unique identifier of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchProjectDtoV1"
              }
            }
          },
          "description": "Project fields to update; omitted fields are left unchanged",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/analyseSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get analyse settings",
        "description": "",
        "operationId": "getAnalyseSettingsForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit analyse settings",
        "description": "",
        "operationId": "editAnalyseSettingsForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyseSettingsDtoV1"
              }
            }
          },
          "description": "Analyse settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/applyTemplate/{templateUid}/assignProviders": {
      "post": {
        "tags": [
          "Project",
          "Project Template"
        ],
        "summary": "Assigns providers from template",
        "description": "\nAssigns the providers configured in the template's workflow steps to the project's jobs. The project does\nnot need to have been created from this template via the API — a template is applicable to a project when\nthe number of workflow steps configured on the template equals the number of workflow steps on the project\n(step types/order are not compared). This is commonly needed after creating a project from a template via\nthe API (applyTemplate), since — unlike the UI — those API calls do not assign providers automatically.\n\nJobs that will be skipped:\n* jobs in Assigned status\n* jobs that already has assignments\n* jobs that are not ready yet (import or update source is in progress)\n    ",
        "operationId": "assignLinguistsFromTemplate",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "UID of the template",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List_of_job_parts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/applyTemplate/{templateUid}/assignProviders/forJobParts": {
      "post": {
        "tags": [
          "Project",
          "Project Template"
        ],
        "summary": "Assigns providers from template (specific jobs)",
        "description": "\nJobs that will be skipped:\n* jobs in Assigned status\n* jobs that already has assignments\n    ",
        "operationId": "assignLinguistsFromTemplateToJobParts",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "UID of the template",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobPartReferences"
              }
            }
          },
          "description": "Job parts to assign",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/List_of_job_parts"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/assignVendor": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Assign vendor",
        "description": "\nTo unassign Vendor from Project, use empty body:\n```\n{}\n```\n    ",
        "operationId": "assignVendorToProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Request_body_for_assigning_a_vendor_to_a_project_send_an_empty_body_to_unassign"
              }
            }
          },
          "description": "Vendor assignment; use empty body to unassign",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/assignableTemplates": {
      "get": {
        "tags": [
          "Project",
          "Project Template"
        ],
        "summary": "List assignable templates",
        "description": "",
        "operationId": "assignableTemplates",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Templates_that_can_be_applied_to_the_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/assignableVendors": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "List assignable vendors",
        "description": "",
        "operationId": "assignableVendors",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignableVendorsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/clone": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Clone project",
        "description": "",
        "operationId": "cloneProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project to clone",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneProjectDtoV1"
              }
            }
          },
          "description": "Clone options",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/contentGroup": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get content group for project",
        "description": "Returns the content group linked to the project. Returns an empty response body if the project has no content group linked. Accessible to guests and linguists.",
        "operationId": "getProjectContentGroup",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGroupDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Set project content group",
        "description": "Sets the content group for the project, replacing any previously linked group. Returns the newly linked content group. Returns 422 Unprocessable Entity if the project already has style guides assigned.",
        "operationId": "linkProjectToContentGroup",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/LinkProjectToContentGroupDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGroupDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "422": {
            "description": "Unprocessable Entity"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project"
        ],
        "summary": "Unlink project from content group",
        "description": "Idempotent — if the project has no content group linked, returns 204 No Content without error.",
        "operationId": "unlinkProjectFromContentGroup",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/customFields": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get custom fields of project (page)",
        "description": "",
        "operationId": "getCustomFieldsPageOfProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 20",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by custom field instance creator UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "modifiedBy",
            "in": "query",
            "description": "Filter by custom field instance updater UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort by this field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CREATED",
                "LAST_MODIFIED"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Create custom field instances",
        "description": "",
        "operationId": "createCustomFieldsOnProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateCustomFieldInstancesDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit custom fields of the project (batch)",
        "description": "",
        "operationId": "editCustomFieldsOnProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldInstancesDtoV1"
              }
            }
          },
          "description": "Custom field instances to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/customFields/{fieldInstanceUid}": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get custom field of project",
        "description": "",
        "operationId": "getCustomFieldOfProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldInstanceUid",
            "in": "path",
            "description": "Custom field instance UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit custom field of project",
        "description": "",
        "operationId": "editCustomFieldOnProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldInstanceUid",
            "in": "path",
            "description": "Custom field instance UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldInstanceDtoV1"
              }
            }
          },
          "description": "Custom field instance update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project"
        ],
        "summary": "Delete custom field of project",
        "description": "",
        "operationId": "deleteCustomFieldOfProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldInstanceUid",
            "in": "path",
            "description": "Custom field instance UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/fileNamingSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get file naming settings for project",
        "description": "",
        "operationId": "getFileNamingSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File_naming_and_output_folder_settings_for_a_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Update file naming settings for project",
        "description": "",
        "operationId": "updateFileNamingSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/File_naming_and_output_folder_settings_for_a_project"
              }
            }
          },
          "description": "File naming settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File_naming_and_output_folder_settings_for_a_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/financialSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get financial settings",
        "description": "",
        "operationId": "getFinancialSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Financial_settings_for_a_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit financial settings",
        "description": "",
        "operationId": "setFinancialSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Request_body_for_setting_project_financial_settings"
              }
            }
          },
          "description": "Financial settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Financial_settings_for_a_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/importSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get projects's default import settings",
        "description": "Returns the project's default import settings, including per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "getImportSettingsForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit project import settings",
        "description": "Replaces the entire import settings object. Any format section omitted from the request body is reset to its system defaults — it is not merged with the project's current settings. To change a single setting without losing the rest, first call GET /api2/v1/projects/{projectUid}/importSettings, then resend the complete object with the desired change applied on top. Includes per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "editImportSettingsOfProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/FileImportSettingsCreateDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobPreviewPackage": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Upload Job Preview Package",
        "description": "Uploads a Job Preview Package to a project. ImportFile API then refers to the preview package.\n        The package is a zip file containing the preview HTML and related asset (css, js..) files.",
        "operationId": "uploadJobPreviewPackage",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "multipart/form-data"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "description": "JobPreviewPackage file to upload",
                    "type": "string",
                    "format": "binary"
                  }
                },
                "required": [
                  "file"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPreviewPackageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/lqaSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get LQA settings",
        "description": "",
        "operationId": "getProjectSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowLevel",
            "in": "query",
            "description": "Workflow level (1-15)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaSettingsDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/mtSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get project machine translate settings",
        "description": "",
        "operationId": "getMtSettingsForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MTSettingsPerLanguageListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Assign machine translate engine to project",
        "description": "Assigns machine translate settings for the project, either as a single project-wide\n        engine (bulk mode) or per-language via machineTranslateSettingsPerLangs; machineTranslateSettingsPerLangs\n        takes precedence if both machineTranslateSettings and machineTranslateSettingsPerLangs are set.\n        In bulk mode (machineTranslateSettings set, machineTranslateSettingsPerLangs omitted), the given engine\n        replaces any project-level or per-language MT settings currently in effect, erasing all mtSettings per\n        language for the project; call without a machineTranslateSettings parameter to remove all machine\n        translate settings from the project. When machineTranslateSettingsPerLangs is set, only the given\n        locales are updated, leaving machine translate settings of other locales untouched. If\n        machineTranslateSettingsPerLangs is set while the project currently has a single machineTranslateSettings\n        value applying to all locales (bulk mode), that bulk setting is copied onto every target locale not\n        listed in machineTranslateSettingsPerLangs before being cleared, so their effective machine translate\n        settings do not change as a side effect of switching modes.",
        "operationId": "setMtSettingsForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditProjectMTSettingsDtoV1"
              }
            }
          },
          "description": "MT settings to apply; omit machineTranslateSettings to remove all MT settings.\n                    Use machineTranslateSettingsPerLangs to update only the given locales.",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MTSettingsPerLanguageListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/mtSettingsPerLanguage": {
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit machine translate settings per language",
        "description": "This will erase mtSettings for project",
        "operationId": "setMtSettingsPerLanguageForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditProjectMTSettPerLangListDtoV1"
              }
            }
          },
          "description": "MT settings per language to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MTSettingsPerLanguageListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/providers": {
      "get": {
        "tags": [
          "Project",
          "Provider"
        ],
        "summary": "List project providers",
        "description": "",
        "operationId": "getProjectAssignments",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "providerName",
            "in": "query",
            "description": "Filter by provider name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/qaSettingsChecks": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get QA checks",
        "description": "Returns enabled quality assurance settings.",
        "operationId": "enabledQualityChecks",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Quality_assurance_checks_enabled_for_a_project"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/quotes": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "List quotes",
        "description": "\nIf the project has been archived, this call returns `404 Not Found` instead of the quotes list, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.\n",
        "operationId": "getQuotesForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by quote name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DATE_CREATED",
                "INNER_ID"
              ],
              "default": "DATE_CREATED"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorting order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/restore": {
      "patch": {
        "tags": [
          "Project"
        ],
        "summary": "Restore archived project",
        "description": "\nRestores a project that was previously archived, reversing `PUT /api2/v1/projects/{projectUid}/archive`.\n\nThis does **not** recover a project soft-deleted via `DELETE /api2/v1/projects/{projectUid}`\n(recycle bin) - use `PATCH /api2/v1/projects/{projectUid}/undelete` for that instead.\n\nThis is the only endpoint that can be called on an archived project directly - while a project is archived, GET requests against the project itself and its jobs/quotes/analyses, `DELETE /api2/v1/projects/{projectUid}`, and `GET`/`PUT /api2/v2/projects/{projectUid}/accessSettings` all return `404 Not Found`, the same as for a non-existent project.\n",
        "operationId": "restoreProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project to restore",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/setStatus": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Edit project status",
        "description": "",
        "operationId": "setProjectStatus",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetProjectStatusDtoV1"
              }
            }
          },
          "description": "New status",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/statusAutomationSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get project status automation settings",
        "description": "",
        "operationId": "getProjectStatusAutomationSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit project status automation settings",
        "description": "",
        "operationId": "editProjectStatusAutomationSettings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/statusChanges": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get status changes",
        "description": "",
        "operationId": "getProjectStatusChanges",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order of the returned status changes",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusChangesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/styleGuides": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get style guides for project",
        "description": "Returns the style guides associated with the project per target locale. Resolved either from directly assigned style guide associations, or — when the project is linked to a content group — from the content group's style guides. Associations resolved from the content group, and associations shared from another organization, are both returned with `disabled: true`; this only means the association can't be edited through this endpoint, not that it doesn't apply — the style guide still applies to the project.",
        "operationId": "getProjectStyleGuides",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "excludeVendorStyleGuides",
            "in": "query",
            "description": "When true, excludes style guides shared from a vendor organization",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "contentGroupId",
            "in": "query",
            "description": "Content group id to resolve style guides for; used to preview style guides for a not-yet-linked content group. When omitted or blank, the project's currently linked content group (if any) is resolved automatically.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StyleGuideAssociationListDtoInternalV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/targetLangs": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Add target languages",
        "description": "Add target languages to project",
        "operationId": "addTargetLanguageToProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Request_body_for_adding_target_languages_to_a_project"
              }
            }
          },
          "description": "Target languages to add",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project"
        ],
        "summary": "Remove target languages",
        "description": "Remove target languages from project.\nRemoval is blocked for a language if any of the following are present:\n- An active or trashed job (jobs in the recycle bin also block removal). List trashed jobs via GET /api2/v2/projects/{projectUid}/jobs?trashed=true\n- A translation memory assigned to the project for that language\n- A term base assigned to the project for that language\nAll blocked languages are listed in the 400 error response.\nRemoval is also blocked when it would leave the project with no target languages.",
        "operationId": "removeTargetLanguagesFromProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RemoveTargetLangDtoV1"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/termBases": {
      "get": {
        "tags": [
          "Project",
          "Term Base"
        ],
        "summary": "Get term bases",
        "description": "",
        "operationId": "getProjectTermBases",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "excludeVendorTermBases",
            "in": "query",
            "description": "Exclude vendor term bases, returning only the current organization's term bases",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTermBaseListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project",
          "Term Base"
        ],
        "summary": "Edit term bases",
        "description": "\nReplaces all existing term base assignments for the specified target language, or for all project\ntarget languages if targetLang is omitted.\n\nTo assign a term base for write mode, include it in both readTermBases and writeTermBase.\nTo assign a term base for quality assurance, include it in both readTermBases and qualityAssuranceTermBases.\n",
        "operationId": "setProjectTermBases",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetTermBaseDtoV1"
              }
            }
          },
          "description": "Term base assignment",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTermBaseListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/termBases/relevant": {
      "get": {
        "tags": [
          "Project",
          "Term Base"
        ],
        "summary": "List project relevant term bases",
        "description": "",
        "operationId": "relevantTermBases",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "query",
            "description": "Filter by term base internal ID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by term base name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "query",
            "description": "Filter by domain name - the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "description": "Filter by client name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainName",
            "in": "query",
            "description": "Filter by subdomain name - used together with domain to further refine content-type/category classification",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLangs",
            "in": "query",
            "description": "Filter by target languages",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "strictLangMatching",
            "in": "query",
            "description": "Require exact language match instead of language-family match",
            "required": false,
            "schema": {
              "type": "boolean",
              "enum": [
                "true",
                "false"
              ],
              "default": false
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermBasePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/transMemories/relevant": {
      "get": {
        "tags": [
          "Project",
          "Translation Memory"
        ],
        "summary": "List project relevant translation memories",
        "description": "",
        "operationId": "relevantTransMemoriesForProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by translation memory name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "query",
            "description": "Filter by domain name - the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "description": "Filter by client name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainName",
            "in": "query",
            "description": "Filter by subdomain name - used together with domain to further refine content-type/category classification",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLangs",
            "in": "query",
            "description": "Filter by target languages",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "strictLangMatching",
            "in": "query",
            "description": "Require exact language match instead of language-family match",
            "required": false,
            "schema": {
              "type": "boolean",
              "enum": [
                "true",
                "false"
              ],
              "default": false
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/transMemories/searchSegmentInProject": {
      "post": {
        "tags": [
          "Project",
          "Translation Memory"
        ],
        "summary": "Search translation memory for segment in the project",
        "description": "Returns at most <i>maxSegments</i>\n            records with <i>score >= scoreThreshold</i> and at most <i>maxSubsegments</i> records which are subsegment,\n            i.e. the source text is substring of the query text.",
        "operationId": "searchTmSegment",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTMRequestDtoV1"
              }
            }
          },
          "description": "Search request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTmDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/undelete": {
      "patch": {
        "tags": [
          "Project"
        ],
        "summary": "Undelete project",
        "description": "\nRestores a project that was previously soft-deleted (moved to the recycle bin) via\n`DELETE /api2/v1/projects/{projectUid}` with `purge=false`, before it is permanently purged.\n\nIdempotent: calling this on a project that is not currently in the recycle bin is a no-op and still\nreturns `204 No Content`.\n",
        "operationId": "undeleteProject",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project to undelete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/workflowSteps": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Add workflow steps",
        "description": "Adds one or more existing workflow steps to an existing project, i.e. a project that has already been created. This is distinct from creating workflow step definitions at the organization level (see POST /workflowSteps) or from configuring the workflow at project-template or project-creation time. Requires ADMIN or PROJECT_MANAGER role with edit rights on the project. Steps already assigned to the project are silently ignored. Returns 409 Conflict only if a concurrent request assigns the same step first.",
        "operationId": "addWorkflowSteps",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddWorkflowStepsDtoV1"
              }
            }
          },
          "description": "Workflow steps to add",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "409": {
            "description": "Conflict"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/applyTemplate/async/{templateUid}": {
      "post": {
        "tags": [
          "Project",
          "Project Template"
        ],
        "summary": "Create project from template (async)",
        "description": "\nNote: unlike creating a project from a template via the UI, this API call does not automatically assign\nproviders configured in the template's workflow steps. Call assignProviders separately to apply them.\n    ",
        "operationId": "createProjectFromTemplateV2Async",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "Template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectFromTemplateAsyncV2DtoV2"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/applyTemplate/{templateUid}": {
      "post": {
        "tags": [
          "Project",
          "Project Template"
        ],
        "summary": "Create project from template",
        "description": "\nNote: unlike creating a project from a template via the UI, this API call does not automatically assign\nproviders configured in the template's workflow steps. Call assignProviders separately to apply them.\n    ",
        "operationId": "createProjectFromTemplateV2",
        "parameters": [
          {
            "name": "templateUid",
            "in": "path",
            "description": "Template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectFromTemplateV2DtoV2"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/accessSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get access and security settings",
        "description": "\nIf the project has been archived, this call returns `404 Not Found` instead of the settings, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.\n",
        "operationId": "getProjectAccessSettingsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectSecuritySettingsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit access and security settings",
        "description": "\nIf the project has been archived, this call returns `404 Not Found` instead of editing the settings, the same as for a non-existent project. Restore it first via `PATCH /api2/v1/projects/{projectUid}/restore` to make it accessible again.\n",
        "operationId": "editProjectAccessSettingsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditProjectSecuritySettingsDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectSecuritySettingsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/providers/suggest": {
      "post": {
        "tags": [
          "Project",
          "Provider"
        ],
        "summary": "Get suggested providers",
        "description": "",
        "operationId": "listProviders_3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderListDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/qaSettings": {
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit quality assurance settings",
        "description": "Only checks listed in the request are updated; omitted checks keep their current settings.",
        "operationId": "setProjectQASettingsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/EditQASettingsDtoV2"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QASettingsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/workflowSteps": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get workflow steps",
        "description": "",
        "operationId": "getProjectWorkflowStepsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "withAssignedJobs",
            "in": "query",
            "description": "Return only steps containing jobs assigned to the calling linguist.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectWorkflowStepListDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects": {
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Create project",
        "description": "",
        "operationId": "createProjectV3",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectV3DtoV3"
              }
            }
          },
          "description": "Project creation request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}": {
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit project",
        "description": "",
        "operationId": "editProjectV3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Unique identifier of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditProjectV3DtoV3"
              }
            }
          },
          "description": "Project fields to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/analyses": {
      "get": {
        "tags": [
          "Project",
          "Analysis"
        ],
        "summary": "List analyses by project",
        "description": "",
        "operationId": "listByProjectV3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Unique identifier of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by analysis name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uid",
            "in": "query",
            "description": "Filter by analysis UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "DATE_CREATED",
                "INNER_ID"
              ],
              "default": "DATE_CREATED"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorting order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "onlyOwnerOrg",
            "in": "query",
            "description": "When true, returns only analyses owned by the user's organization",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnalyseReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/transMemories": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "List translation memories assigned to project",
        "description": "Returns the translation memories currently configured/assigned to this project.\nThis is not a recommendation of memories that could be relevant — see the separate\n'/relevant' endpoint for that.",
        "operationId": "getProjectTransMemoriesV3",
        "parameters": [
          {
            "name": "targetLang",
            "in": "query",
            "description": "Filter by target language",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wfStepUid",
            "in": "query",
            "description": "Filter by workflow step UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "excludeVendorTransMemories",
            "in": "query",
            "description": "Exclude vendor translation memories, returning only the current organization's TMs",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "projectUid",
            "in": "path",
            "description": "Unique identifier (UID) of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTransMemoryListDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Edit translation memories",
        "description": "If user wants to edit “All target languages” or “All workflow steps”, but there are already varied TM settings for individual languages or steps, then the user risks to overwrite these individual choices. Each dataPerContext entry must either be a single entry with workflowStep omitted (applies to all workflow steps), or entries that all have workflowStep set (individual workflow steps). Combining an all-workflow-step entry with individual-workflow-step entries in the same request returns a 400 Bad Request.",
        "operationId": "setProjectTransMemoriesV3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Unique identifier (UID) of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetProjectTransMemoriesV3DtoV3"
              }
            }
          },
          "description": "Translation memory assignments per language/workflow step context",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTransMemoryListDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/preTranslateSettings": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get project pre-translate settings",
        "description": "",
        "operationId": "getProjectPreTranslateSettingsV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreTranslateSettingsV4DtoV4"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Update project pre-translate settings (job-creation default)",
        "description": "\nControls whether new jobs are automatically pre-translated when created\n(preTranslateOnJobCreation) and related project-level pre-translate defaults.\nThis is distinct from POST .../jobs/preTranslate, which pre-translates\nalready-created jobs on demand.\n    ",
        "operationId": "updateProjectPreTranslateSettingsV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreTranslateSettingsV4DtoV4"
              }
            }
          },
          "description": "Pre-translate settings",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreTranslateSettingsV4DtoV4"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "List project templates",
        "description": "\nAPI call to list [project templates](https://support.phrase.com/hc/en-us/articles/5709647439772-Project-Templates-TMS-).\n\nUse the query parameters below to refine your search criteria for project templates:\n\n- **name** - The full project template name or a portion of it. For example, using `name=GUI` or `name=02`\nwill locate project templates named `GUI02`.\n- **clientId** - The client's ID within the system, not interchangeable with its UID.\n- **clientName** - The complete or partial name of the client. For instance, using `clientName=GUI` or `clientName=02`\nwill find project templates associated with the client `GUI02`.\n- **ownerUid** - The user UID who owns the project template within the system, interchangeable with its ID.\n- **domainName** - The complete or partial name of the domain, the org-configurable field used to tag/categorize a\nproject's content type (e.g. Marketing, Legal, Medical, Technical). Using `domainName=GUI` or `domainName=02` will\nfind project templates associated with the domain `GUI02`.\n- **subDomainName** - The complete or partial name of the subdomain, used together with domain to further refine\na project's content-type/category classification. For instance, using `subDomainName=GUI` or `subDomainName=02`\nwill locate project templates linked to the subdomain `GUI02`.\n- **costCenterId** - The cost center's ID within the system, not interchangeable with its UID.\n- **costCenterName** - The complete or partial name of the cost center. For example, using `costCenterName=GUI` or\n`costCenterName=02` will find project templates associated with the cost center `GUI02`.\n- **businessUnitName** - The complete or partial name of the business unit. For instance, using `businessUnitName=GUI`\nor `businessUnitName=02` will locate project templates linked to the business unit `GUI02`.\n- **sort** - Determines if the resulting list of project templates should be sorted by their names or the date they\nwere created. This field supports either `dateCreated` or `templateName` as values.\n- **direction** - Indicates the sorting order for the resulting list by using either `asc` (ascending) or `desc`\n(descending) values.\n- **pageNumber** - Indicates the desired page number (zero-based) to retrieve. The total number of pages is returned in\nthe `totalPages` field within each response.\n- **pageSize** - Indicates the page size, affecting the `totalPages` retrieved in each response and potentially\nimpacting the number of iterations needed to obtain all project templates.\n",
        "operationId": "getProjectTemplates",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by project template name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "description": "Filter by client ID",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "description": "Filter by client name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ownerUid",
            "in": "query",
            "description": "Filter by owner user UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdByUid",
            "in": "query",
            "description": "Filter by creator user UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "query",
            "description": "Filter by domain name - the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainName",
            "in": "query",
            "description": "Filter by subdomain name - used together with domain to further refine content-type/category classification",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "description": "Filter by cost center ID",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "costCenterName",
            "in": "query",
            "description": "Filter by cost center name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "businessUnitName",
            "in": "query",
            "description": "Filter by business unit name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sourceLangs",
            "in": "query",
            "description": "Filter by source language codes",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "targetLangs",
            "in": "query",
            "description": "Filter by target language codes",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "createdInLastHours",
            "in": "query",
            "description": "Filter to templates created within the last N hours",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "templateName",
                "dateCreated",
                "clientName",
                "businessUnitName",
                "domainName",
                "subdomainName",
                "createdBy",
                "owner",
                "sourceLang"
              ],
              "default": "dateCreated"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "asc|desc",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Project Template"
        ],
        "summary": "Create project template",
        "description": "\nCreates a project template by copying the settings of an existing project referenced by `project.uid`. The source language, target languages, and workflow steps of that project are inherited by the new template and returned in the response — they cannot be set directly in this request.\n\nTo create a template with a specific source/target language or workflow, first create or find a project that already has those settings, then save it as a template via this endpoint. Alternatively, create the template with a placeholder project and then use `PUT /projectTemplates/{projectTemplateUid}` (or the `v2` equivalent) to set `sourceLang`, `targetLangs`, and `workFlowSettings` directly, or `PATCH /projectTemplates/{projectTemplateUid}` to set `sourceLang` and `targetLangs` — no source project with those settings is required.\n\n`project.uid` is required and must be the UID of an existing project; an unknown or placeholder value (for example `\"null\"`) returns 404.\n\nThe `name` field in the request is stored and returned as `templateName` in the response. The response also contains a separate `name` field, which is inherited from the source project.\n\n`importSettings` references organization-level import settings; see [List import settings](../import-settings/list-import-settings) and [Create import settings](../import-settings/create-import-settings).\n",
        "operationId": "createProjectTemplate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectTemplateCreateActionDtoProjectTemplateV1"
              }
            }
          },
          "description": "Project template to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get project template, including who is assigned and provider assignments per workflow step",
        "description": "\nReturns current provider/assignee data for the template: `assignedTo` (per-target-language provider assignments, used when the template has no workflow steps) and `workflowSettings` (per-workflow-step provider assignments and settings, used when the template has workflow steps).\n\nNote: importSettings in response is deprecated and will be always null.\n",
        "operationId": "getProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit project template",
        "description": "\nReplaces all editable fields of the project template in a single call.\n\n**Full-replace semantics**\n\nThis is a complete replacement of the template, not a partial update. Any editable field omitted from the request body is cleared or reset to its default — this applies to scalar fields (e.g., `dynamicTitle` resets to `null`) as well as arrays/objects (e.g., omitting `workFlowSettings` entirely deletes all per-step workflow configurations, provider assignments, and LQA profiles). To change one field without affecting the rest, first `GET` the current template and include its other fields unchanged in the `PUT` body.\n\nUnlike `POST /projectTemplates`, this endpoint accepts `sourceLang`, `targetLangs`, and `workFlowSettings` directly in the request body — no source project reference is required to set or change the template's source/target languages or workflow steps.\n\n**Workflow steps and provider assignments (`workFlowSettings`)**\n\nEach entry in `workFlowSettings` references a workflow step and configures:\n- `assignedTo` — per-target-language list of providers (user, vendor, or language AI app) for that step\n- `notifyProvider` — email notification settings for providers assigned to that step\n- `lqaProfile` — LQA profile applied at that step\n\nFor templates without workflow steps, use the top-level `assignedTo` field to assign providers per target language instead.\n\n**Project workflow behavior (`projectWorkflowSettings`)**\n\n- `completeUnassigned` — when `true`, jobs with no assigned provider are automatically marked complete\n- `propagateTranslationsToLowerWfDuringUpdateSource` — when `true`, accepted translations propagate to lower workflow steps when the source is updated\n\nRemoving a language from `targetLangs` discards all saved provider assignments for that language.\n    ",
        "operationId": "editProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectTemplateEditDtoProjectTemplateV1"
              }
            }
          },
          "description": "Updated project template data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project Template"
        ],
        "summary": "Delete project template",
        "description": "",
        "operationId": "deleteProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "patch": {
        "tags": [
          "Project Template"
        ],
        "summary": "Patch project template",
        "description": "\nPartially updates a project template. Only the fields present in the request body are updated; omitted fields retain their current values.\n\nUnlike `POST /projectTemplates`, `sourceLang` and `targetLangs` can be set directly here — no source project reference is required to change the template's source/target languages.\n\nTo clear a reference field (e.g. remove a client), send `{\"uid\": null}` for that field.\n\n`workflowSettings` is a whole-value replacement, not merged field-by-field: omit it to leave it untouched, but sending it replaces the settings for every workflow step (steps left out lose their settings).\n",
        "operationId": "patchProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectTemplatePatchDtoProjectTemplateV1"
              }
            }
          },
          "description": "Fields to update",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/accessSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get project template access and security settings",
        "description": "",
        "operationId": "getProjectTemplateAccessSettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectSecuritySettingsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit project template access and security settings",
        "description": "",
        "operationId": "editProjectTemplateAccessSettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditProjectSecuritySettingsDtoV2"
              }
            }
          },
          "description": "Access and security settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectSecuritySettingsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/analyseSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get analyse settings",
        "description": "",
        "operationId": "getAnalyseSettingsForProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractAnalyseSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit analyse settings",
        "description": "",
        "operationId": "updateAnalyseSettingsForProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditAnalyseSettingsDtoV1"
              }
            }
          },
          "description": "Analyse settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractAnalyseSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/clone": {
      "post": {
        "tags": [
          "Project Template"
        ],
        "summary": "Clone project template",
        "description": "\nCreates a copy of a project template. All settings are cloned: source and target languages, workflow steps, translation memory and term base assignments, pre-translate settings, security settings, and custom fields. The cloned template receives a new unique identifier.\n\nRequires the **Project template — create** access right (ADMIN and PROJECT_MANAGER roles only).\n",
        "operationId": "cloneProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneProjectTemplateDtoProjectTemplateV1"
              }
            }
          },
          "description": "Clone parameters",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/contentGroup": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get content group for project template",
        "description": "Returns the content group linked to the project template. Returns an empty response body if the template has no content group linked.",
        "operationId": "getProjectTemplateContentGroup",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGroupDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Project Template"
        ],
        "summary": "Set project template content group",
        "description": "Sets the content group for the project template, replacing any previously linked group. Returns the newly linked content group. Returns 422 Unprocessable Entity if the project template already has style guides assigned.",
        "operationId": "linkProjectTemplateToContentGroup",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/LinkProjectToContentGroupDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentGroupDto"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "422": {
            "description": "Unprocessable Entity"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project Template"
        ],
        "summary": "Unlink project template from content group",
        "description": "Idempotent — if the project template has no content group linked, returns 204 No Content without error.",
        "operationId": "unlinkProjectTemplateFromContentGroup",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/customFields": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get custom fields of project template (page)",
        "description": "",
        "operationId": "getCustomFieldsPageOfProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 20",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by webhook creators UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "modifiedBy",
            "in": "query",
            "description": "Filter by webhook updaters UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort by this field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "CREATED",
                "LAST_MODIFIED"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Project Template"
        ],
        "summary": "Create custom field instances",
        "description": "",
        "operationId": "createCustomFieldsOnProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateCustomFieldInstancesDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit custom fields of the project template (batch)",
        "description": "",
        "operationId": "editCustomFieldsOnProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldInstancesDtoV1"
              }
            }
          },
          "description": "Batch update of custom field instances",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstancesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/customFields/{fieldInstanceUid}": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get custom field of project template",
        "description": "",
        "operationId": "getCustomFieldOfProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldInstanceUid",
            "in": "path",
            "description": "Custom field instance UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit custom field of project template",
        "description": "",
        "operationId": "editCustomFieldOnProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldInstanceUid",
            "in": "path",
            "description": "Custom field instance UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCustomFieldInstanceDtoV1"
              }
            }
          },
          "description": "Updated custom field value",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Project Template"
        ],
        "summary": "Delete custom field of project template",
        "description": "",
        "operationId": "deleteCustomFieldOfProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fieldInstanceUid",
            "in": "path",
            "description": "Custom field instance UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/importSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get import settings",
        "description": "Returns the project template's import settings, including per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "getImportSettingsForProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit project template import settings",
        "description": "Replaces the entire import settings object. Any format section omitted from the request body is reset to its system defaults — it is not merged with the template's current settings. To change a single setting without losing the rest, first call GET /api2/v1/projectTemplates/{projectTemplateUid}/importSettings, then resend the complete object with the desired change applied on top. Includes per-format options such as the Markdown parser flavor (Plain / PHP-Python Markdown Extra / GitHub Flavored Markdown).",
        "operationId": "editProjectTemplateImportSettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/FileImportSettingsCreateDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileImportSettingsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/mtSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get project template machine translate settings",
        "description": "",
        "operationId": "getMachineTranslateSettingsForProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MTSettingsPerLanguageListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit project template machine translate settings",
        "description": "This will erase all mtSettings per language for project template. To remove all machine translate settings from template call without a machineTranslateSettings parameter. Alternatively, pass machineTranslateSettingsPerLangs to update the given locales only, leaving machine translate settings of other locales untouched. If machineTranslateSettingsPerLangs is set while the template currently has a single machineTranslateSettings value applying to all locales (bulk mode), that bulk setting is copied onto every target locale not listed in machineTranslateSettingsPerLangs before being cleared, so their effective machine translate settings do not change as a side effect of switching modes. machineTranslateSettingsPerLangs takes precedence if both machineTranslateSettings and machineTranslateSettingsPerLangs are set.",
        "operationId": "setMachineTranslateSettingsForProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditProjectMTSettingsDtoV1"
              }
            }
          },
          "description": "Machine translate settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MTSettingsPerLanguageListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/qaSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get quality assurance settings",
        "description": "",
        "operationId": "getProjectTemplateQASettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QASettingsDtoV2"
                },
                "examples": {
                  "response": {
                    "value": {
                      "checks": [
                        {
                          "type": "VOID",
                          "name": "emptyTarget",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "endPunctuation",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "inconsistentTranslation",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "inconsistentFormatting",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "newerAtLowerLevel",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "missingNumber",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "repeatedWords",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "multipleSpaces",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "leadingAndTrailingSpaces",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "inconsistentTagContent",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "emptyTagContent",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "joinMarksInconsistency",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "emptyPairTags",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "nestedTags",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "malformed",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "nonConformingTerms",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "ignoreNotApprovedTerms",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "forbiddenTerms",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "spellCheck",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "segmentNotConfirmed",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "unresolvedComment",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "unresolvedComment",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "NUMBER",
                          "name": "absoluteTargetLength",
                          "ignorable": true,
                          "enabled": true,
                          "value": 0
                        },
                        {
                          "type": "NUMBER",
                          "name": "relativeTargetLength",
                          "ignorable": true,
                          "enabled": true,
                          "value": 0
                        },
                        {
                          "type": "NUMBER",
                          "name": "targetLength",
                          "ignorable": true,
                          "enabled": true,
                          "value": 0
                        },
                        {
                          "type": "NUMBER",
                          "name": "targetLengthPercent",
                          "ignorable": true,
                          "enabled": true,
                          "value": 0
                        },
                        {
                          "type": "VOID",
                          "name": "targetLengthPerSegment",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "STRING",
                          "name": "forbiddenStrings",
                          "ignorable": true,
                          "enabled": true,
                          "value": "string"
                        },
                        {
                          "type": "VOID",
                          "name": "excludeLockedSegments",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "strictJobStatus",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "targetSourceIdentical",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "ignoreInAllWorkflowSteps",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "unmodifiedFuzzyTranslation",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "unmodifiedFuzzyTranslationTM",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "unmodifiedFuzzyTranslationMTNT",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "VOID",
                          "name": "extraNumbers",
                          "ignorable": true,
                          "enabled": true
                        },
                        {
                          "type": "MORAVIA",
                          "name": "extraNumbers",
                          "ignorable": true,
                          "enabled": true,
                          "profile": "string"
                        },
                        {
                          "type": "REGEX",
                          "name": "regexp",
                          "rules": {
                            "description": "string",
                            "sourceRegexp": "string",
                            "targetRegexp": "string",
                            "id": "string",
                            "ignorable": true,
                            "instant": true
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit quality assurance settings",
        "description": "Only checks listed in the request are updated; omitted checks keep their current settings.",
        "operationId": "setProjectTemplateQASettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/EditQASettingsDtoV2"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QASettingsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/statusAutomationSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get project template status automation settings",
        "description": "",
        "operationId": "getProjectTemplateStatusAutomationSettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit project template status automation settings",
        "description": "",
        "operationId": "editProjectTemplateStatusAutomationSettings",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
              }
            }
          },
          "description": "Status automation settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/styleGuides": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get style guides for project template",
        "description": "Returns the style guides associated with the project template per target locale. Resolved either from directly assigned style guide associations, or — when the template is linked to a content group — from the content group's style guides. When resolved from a content group, each returned association has `disabled: true`; this only means the association can't be edited through this endpoint, not that it doesn't apply — the content group's style guide still applies to projects created from the template.",
        "operationId": "getProjectTemplateStyleGuides",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "contentGroupId",
            "in": "query",
            "description": "Content group id to resolve style guides for; used to preview style guides for a not-yet-linked content group. When omitted or blank, the template's currently linked content group (if any) is resolved automatically.",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StyleGuideAssociationListDtoInternalV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/termBases": {
      "get": {
        "tags": [
          "Project Template",
          "Term Base"
        ],
        "summary": "Get term bases",
        "description": "",
        "operationId": "getProjectTemplateTermBases",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateTermBaseListDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template",
          "Term Base"
        ],
        "summary": "Edit term bases in project template",
        "description": "Requires the project template to have at least one source and one target language configured.",
        "operationId": "setProjectTemplateTermBases",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetProjectTemplateTermBaseDtoProjectTemplateV1"
              }
            }
          },
          "description": "Term base assignments",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateTermBaseListDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/transMemories/relevant": {
      "get": {
        "tags": [
          "Project Template",
          "Translation Memory"
        ],
        "summary": "List project template relevant translation memories",
        "description": "",
        "operationId": "relevantTransMemoriesForProjectTemplate",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by translation memory name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "query",
            "description": "Filter by domain name - the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "description": "Filter by client name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainName",
            "in": "query",
            "description": "Filter by subdomain name - used together with domain to further refine content-type/category classification",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLangs",
            "in": "query",
            "description": "Filter by target language codes",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "strictLangMatching",
            "in": "query",
            "description": "When true, require exact match on language codes",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projectTemplates/{projectTemplateUid}": {
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit project template",
        "description": "\nReplaces all editable fields of the project template in a single call.\n\n**Full-replace semantics**\n\nThis is a complete replacement of the template, not a partial update. Any editable field omitted from the request body is cleared or reset to its default — this applies to scalar fields (e.g., `dynamicTitle` resets to `null`) as well as arrays/objects (e.g., omitting `workFlowSettings` entirely deletes all per-step workflow configurations, provider assignments, and LQA profiles). To change one field without affecting the rest, first `GET` the current template and include its other fields unchanged in the `PUT` body.\n\nUnlike `POST /projectTemplates`, this endpoint accepts `sourceLang`, `targetLangs`, and `workFlowSettings` directly in the request body — no source project reference is required to set or change the template's source/target languages or workflow steps.\n\nUse `workFlowSettings` to configure per-step provider assignments (`assignedTo`), email notifications (`notifyProvider`), and LQA profiles (`lqaProfile`) for each workflow step. For templates without workflow steps, use the top-level `assignedTo` field instead.\n\n`projectWorkflowSettings.completeUnassigned` controls whether jobs with no assigned provider are automatically marked complete. `projectWorkflowSettings.propagateTranslationsToLowerWfDuringUpdateSource` controls whether accepted translations propagate to lower workflow steps when the source is updated.\n\nRemoving a language from `targetLangs` discards all saved provider assignments for that language.\n    ",
        "operationId": "editProjectTemplateV2",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectTemplateEditV2DtoProjectTemplateV2"
              }
            }
          },
          "description": "Updated project template data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplate"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projectTemplates/{projectTemplateUid}/transMemories": {
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Edit translation memories",
        "description": "If user wants to edit “All target languages” or “All workflow steps”, but there are already varied TM settings for individual languages or steps, then the user risks to overwrite these individual choices. A dataPerContext entry that is not included in the request is left completely untouched — only the contexts (workflow step / target language combinations) present in the request are changed.",
        "operationId": "setProjectTemplateTransMemoriesV2",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetProjectTemplateTransMemoriesV2DtoV2"
              }
            }
          },
          "description": "Translation memory assignments",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateTransMemoryListV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projectTemplates/{projectTemplateUid}/transMemories": {
      "get": {
        "tags": [
          "Project Template",
          "Translation Memory"
        ],
        "summary": "Get translation memories",
        "description": "",
        "operationId": "getProjectTemplateTransMemories_2",
        "parameters": [
          {
            "name": "targetLang",
            "in": "query",
            "description": "Filter by target language code",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wfStepUid",
            "in": "query",
            "description": "Filter by workflow step UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateTransMemoryListDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projectTemplates/{projectTemplateUid}/preTranslateSettings": {
      "get": {
        "tags": [
          "Project Template"
        ],
        "summary": "Get project template pre-translate settings",
        "description": "",
        "operationId": "getProjectTemplatePreTranslateSettingsV4",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreTranslateSettingsV4DtoV4"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Project Template"
        ],
        "summary": "Update project template pre-translate settings",
        "description": "",
        "operationId": "updateProjectTemplatePreTranslateSettingsV4",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreTranslateSettingsV4DtoV4"
              }
            }
          },
          "description": "Pre-translate settings to apply",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreTranslateSettingsV4DtoV4"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/providers/suggest": {
      "post": {
        "tags": [
          "Provider",
          "Job"
        ],
        "summary": "Get suggested providers for multiple jobs",
        "description": "\nReturns the providers most relevant to a selection of jobs in `relevant`, ranked by relevance aggregated across all selected jobs based on the jobs' languages, workflow steps and history. An optional `limit` caps the response to the top-N most relevant providers; if omitted, all are returned.",
        "operationId": "listProvidersForJobs",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuggestProvidersDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuggestedProvidersDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/{jobUid}/providers/suggest": {
      "post": {
        "tags": [
          "Provider",
          "Job"
        ],
        "summary": "Get suggested providers",
        "description": "",
        "operationId": "listProviders_4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderListDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/profiles": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "List LQA profiles",
        "description": "Requires LQA to be enabled for the organization. Accessible to users with internal role or projectCreate access right.",
        "operationId": "getLqaProfiles",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Name of LQA profiles, it is used for filter the list by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "It is used for filter the list by who created the profile",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateCreated",
            "in": "query",
            "description": "It is used for filter the list by date created",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 20",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NAME",
                  "CREATED_BY",
                  "DATE_CREATED"
                ]
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ASC",
                  "DESC"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Create LQA profile",
        "description": "Requires LQA to be enabled for the organization. Requires internal role.",
        "operationId": "createLqaProfile",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLqaProfileDtoV1"
              }
            }
          },
          "description": "LQA profile to create",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileDetailDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/profiles/authors": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Get list of LQA profile authors",
        "description": "Requires LQA to be enabled for the organization. Accessible to users with internal role or projectCreate access right.",
        "operationId": "getLqaProfileAuthors",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserReferenceV1"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/profiles/defaultValues": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Get LQA profile default values",
        "description": "Returns dummy default values, not a persisted profile. Requires LQA to be enabled for the organization. Accessible to users with internal role or projectCreate access right.",
        "operationId": "getLqaProfileDefaultValues",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileDetailDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/profiles/{profileUid}": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Get LQA profile details",
        "description": "Requires LQA to be enabled for the organization. Accessible to users with internal role or projectCreate access right.",
        "operationId": "getLqaProfile",
        "parameters": [
          {
            "name": "profileUid",
            "in": "path",
            "description": "UID of the LQA profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileDetailDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Update LQA profile",
        "description": "Requires LQA to be enabled for the organization. Requires internal role.",
        "operationId": "updateLqaProfile",
        "parameters": [
          {
            "name": "profileUid",
            "in": "path",
            "description": "UID of the LQA profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLqaProfileDtoV1"
              }
            }
          },
          "description": "Updated LQA profile data",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileDetailDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Delete LQA profile",
        "description": "Returns 400 if the profile is set as the organization default or is still assigned to a project or project template. Requires LQA to be enabled for the organization. Requires internal role.",
        "operationId": "deleteLqaProfile",
        "parameters": [
          {
            "name": "profileUid",
            "in": "path",
            "description": "UID of the LQA profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/profiles/{profileUid}/default": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Make LQA profile default",
        "description": "Sets this profile as the organization's default LQA profile. Requires LQA to be enabled for the organization. Requires internal role.",
        "operationId": "makeDefault",
        "parameters": [
          {
            "name": "profileUid",
            "in": "path",
            "description": "UID of the LQA profile",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileReferenceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/lqa/profiles/{profileUid}/duplicate": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Duplicate LQA profile",
        "description": "Creates a copy of the specified profile with a prefix added to the name. Requires LQA to be enabled for the organization. Requires internal role.",
        "operationId": "duplicateProfile",
        "parameters": [
          {
            "name": "profileUid",
            "in": "path",
            "description": "UID of the LQA profile to duplicate",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LqaProfileReferenceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/qualityAssurances/ignoreChecks": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Edit ignored checks",
        "description": "",
        "operationId": "updateIgnoredChecks",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIgnoredChecksDtoV1"
              }
            }
          },
          "description": "Segment and warning types to ignore",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/qualityAssurances/ignoredWarnings": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Add ignored warnings",
        "description": "",
        "operationId": "addIgnoredWarnings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoV1"
              }
            }
          },
          "description": "Segments and warnings to mark as ignored",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Delete ignored warnings",
        "description": "",
        "operationId": "deleteIgnoredWarnings",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoV1"
              }
            }
          },
          "description": "Segments and warnings to stop ignoring",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/lqa/profiles/authors": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Get list of LQA profile authors",
        "description": "Requires LQA to be enabled for the organization. Requires internal role.",
        "operationId": "getLqaProfileAuthorsV2",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 20",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserReferencePageDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/qualityAssurances/ignoredWarnings": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Add ignored warnings",
        "description": "",
        "operationId": "addIgnoredWarningsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateIgnoredWarningsDtoV2"
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Delete ignored warnings",
        "description": "",
        "operationId": "deleteIgnoredWarningsV2",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateIgnoredWarningsDtoV2"
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/jobs/qualityAssurances/run": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Run quality assurance (batch)",
        "description": "Runs quality assurance checks on the given jobs and returns any warnings found. Checks can detect issues such as tags and formatting (missing, misplaced, or malformed tags; inconsistent tag content; missing or redundant line breaks), numbers, terminology, spelling, forbidden strings, translation length, whitespace, repeated words, unresolved comments and conversations, and source/target consistency. The response reports per-warning detail (for example tag counts for a JoinTags warning, the misplaced tag for a NestedTags warning, or source/target character positions), pinpointing exactly which segments and tags need attention. Call \"Get QA settings\" endpoint to get the list of checks enabled for this project or job.",
        "operationId": "runQaForJobPartsV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QualityAssuranceBatchRunDtoV3"
              }
            }
          },
          "description": "Batch QA run configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityAssuranceResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/jobs/qualityAssurances/segments/run": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Run quality assurance on selected segments",
        "description": "Runs quality assurance checks on the given segments and returns any warnings found. Checks can detect issues such as tags and formatting (missing, misplaced, or malformed tags; inconsistent tag content; missing or redundant line breaks), numbers, terminology, spelling, forbidden strings, translation length, whitespace, repeated words, unresolved comments and conversations, and source/target consistency. The response reports per-warning detail (for example tag counts for a JoinTags warning, the misplaced tag for a NestedTags warning, or source/target character positions), pinpointing exactly which segments and tags need attention. By default runs only fast running checks. Source and target language of jobs have to match.",
        "operationId": "runQaForSegmentsV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QualityAssuranceSegmentsRunDtoV3"
              }
            }
          },
          "description": "Segments QA run configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityAssuranceResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/jobs/qualityAssurances/segments/{segmentId}/runWithUpdate": {
      "post": {
        "tags": [
          "Quality Assurance",
          "Bilingual File"
        ],
        "summary": "Run quality assurance on selected segments and save segments",
        "description": "Saves the uploaded segments and runs quality assurance checks on them, returning any warnings found. Checks can detect issues such as tags and formatting (missing, misplaced, or malformed tags; inconsistent tag content; missing or redundant line breaks), numbers, terminology, spelling, forbidden strings, translation length, whitespace, repeated words, unresolved comments and conversations, and source/target consistency. The response reports per-warning detail (for example tag counts for a JoinTags warning, the misplaced tag for a NestedTags warning, or source/target character positions), pinpointing exactly which segments and tags need attention. By default runs only fast running checks.",
        "operationId": "runQaAndSaveV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "URL-encoded segment identifier",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "$ref": "#/components/schemas/InputStream"
              }
            },
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/InputStream"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityAssuranceResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/jobs/qualityAssurances/settings": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Get QA settings for project",
        "description": "Returns enabled quality assurance checks and settings.",
        "operationId": "getQaSettingsForProjectV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityAssuranceChecksDtoV4"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/jobs/{jobUid}/qualityAssurances/run": {
      "post": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Run quality assurance v4",
        "description": "Runs quality assurance checks on the job and returns any warnings found. Checks can detect issues such as tags and formatting (missing, misplaced, or malformed tags; inconsistent tag content; missing or redundant line breaks), numbers, terminology, spelling, forbidden strings, translation length, whitespace, repeated words, unresolved comments and conversations, and source/target consistency. The response reports per-warning detail (for example tag counts for a JoinTags warning, the misplaced tag for a NestedTags warning, or source/target character positions), pinpointing exactly which segments and tags need attention. Call \"Get QA settings\" endpoint to get the list of checks enabled for this project or job.",
        "operationId": "runQaForJobPartV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QualityAssuranceRunDtoV3"
              }
            }
          },
          "description": "QA run configuration",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityAssuranceResponseDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v4/projects/{projectUid}/jobs/{jobUid}/qualityAssurances/settings": {
      "get": {
        "tags": [
          "Quality Assurance"
        ],
        "summary": "Get QA settings for job part",
        "description": "Returns enabled quality assurance checks and settings for job.",
        "operationId": "getQaSettingsForJobPartV4",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "UID of the project",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "UID of the job",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QualityAssuranceChecksDtoV4"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/qualityProfiles/qeWarnings": {
      "post": {
        "tags": [
          "Quality Profile"
        ],
        "summary": "Get QE warnings for selected job parts",
        "description": "Returns AI-generated quality estimation warnings for the selected job parts. Only call this after the async evaluation job started by POST /api2/v1/qualityProfiles/evaluate has completed (asyncResponse != null on GET /api2/v1/async/{asyncRequest.id}). Calling before completion returns empty segmentWarnings — this is not a clean result, it means the evaluation is still running. Each response covers up to 100 segments (fewer if the end of the scan range is reached). Pagination is cursor-based: omit `initialSegmentId` on the first request to start from the first segment; on subsequent requests, pass the last `segmentId` from the previous response's `segmentWarnings`. `endReached=true` signals there are no further segments. All job parts must belong to the same project and workflow step.",
        "operationId": "getQeWarnings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QeWarningsRequestDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QeWarningsResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/qualityProfiles/segmentWarnings": {
      "post": {
        "tags": [
          "Quality Profile"
        ],
        "summary": "Store evaluation warnings for a job part",
        "description": "Stores segment-level quality evaluation warnings for the specified job part. Each segment's existing evaluation runs on the converter are overwritten with the provided results — prior history is not preserved. An empty results array for a segment records a passing run. Maximum 500 segments per request; larger sets must be split by the caller. Each warning's `type` field must not exceed 255 characters; `message` must not exceed 1000 characters.",
        "operationId": "storeEvaluationWarnings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreSegmentWarningsRequestDtoV1"
              }
            }
          },
          "description": "Store evaluation warnings request",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal Server Error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/quotes/email": {
      "post": {
        "tags": [
          "Quote"
        ],
        "summary": "Email quotes",
        "description": "Sends a quote summary email to providers. All referenced quotes must have a provider assigned. The subject and body are free text but may only contain links created with Phrase template variables (e.g. {project.url}); a literal link or active content in either field is rejected with a 400.",
        "operationId": "emailQuotes",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Email_quotes_request"
              }
            }
          },
          "description": "Email quotes request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Email_quotes_response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/quotes/{quoteUid}": {
      "get": {
        "tags": [
          "Quote"
        ],
        "summary": "Get quote",
        "description": "",
        "operationId": "get_3",
        "parameters": [
          {
            "name": "quoteUid",
            "in": "path",
            "description": "Quote UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/A_quote_for_translation_work"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Quote"
        ],
        "summary": "Delete quote",
        "description": "Deletes the quote. Requires the quote-edit project-space permission; project \"delete other\" permission alone is not sufficient.",
        "operationId": "deleteQuote",
        "parameters": [
          {
            "name": "quoteUid",
            "in": "path",
            "description": "Quote UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/quotes": {
      "post": {
        "tags": [
          "Quote"
        ],
        "summary": "Create quote",
        "description": "For billingUnit \"Hour\", provide either workflowSettings or units, but not both. Additional workflow steps listed in additionalSteps are added to the quote by name.",
        "operationId": "createQuoteV2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteCreateV2DtoV2"
              }
            }
          },
          "description": "Create quote request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/A_quote_for_translation_work_v2_"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/references": {
      "get": {
        "tags": [
          "Reference File"
        ],
        "summary": "List project template reference files",
        "description": "Accessible by Administrator, Project Manager, Guest, and Linguist roles. The `filename` parameter filters by substring match. The `createdBy` field in each result is null when the creator belongs to a different organization.",
        "operationId": "listProjectTemplateReferenceFiles",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filename substring filter",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting at 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, 1–50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ID",
                "FILENAME",
                "DATE_CREATED",
                "CREATED_BY"
              ],
              "default": "ID"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateReferenceFileReferencePageDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Reference File"
        ],
        "summary": "Create project template reference files",
        "description": "The `json` request part allows sending additional data as JSON, such as a text note that will be used for all the given reference files. In case no `file` parts are sent, only 1 reference is created with the given note. Either at least one file must be sent or the note must be specified. Example:\n\n```\n{\n    \"note\": \"Sample text\"\n}\n```\n\nRequired role: Administrator or Project Manager. Maximum 50 files per request.",
        "operationId": "createProjectTemplateReferenceFiles",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ProjectTemplateReferenceFileApiResourceCreateProjectTemplateReferenceFilesRequest"
              }
            }
          },
          "description": "Multipart request with files and JSON",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectTemplateReferenceFilesDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Reference File"
        ],
        "summary": "Delete project template reference files (batch)",
        "description": "Required role: Administrator or Project Manager. All reference files must belong to the same organization as the current user. The underlying file in storage is deleted if no other reference points to it. Returns 400 if any reference file does not belong to the specified project template.",
        "operationId": "batchDeleteProjectTemplateReferenceFiles",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ProjectTemplateReferenceFilesRequestDtoProjectTemplateV1"
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/references/download": {
      "post": {
        "tags": [
          "Reference File"
        ],
        "summary": "Download project template reference files (batch)",
        "description": "Accessible by Administrator, Project Manager, Guest, and Linguist roles. Returns a single file when one reference is selected, or a ZIP archive for multiple. Returns 400 if any reference file does not belong to the specified project template.",
        "operationId": "batchDownloadProjectTemplateReferenceFiles",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ProjectTemplateReferenceFilesRequestDtoProjectTemplateV1"
        },
        "responses": {
          "200": {
            "description": "application/octet-stream"
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projectTemplates/{projectTemplateUid}/references/{referenceFileId}": {
      "get": {
        "tags": [
          "Reference File"
        ],
        "summary": "Download project template reference file",
        "description": "Accessible by Administrator, Project Manager, Guest, and Linguist roles. Returns 400 if the reference file does not belong to the specified project template.",
        "operationId": "downloadProjectTemplateReference",
        "parameters": [
          {
            "name": "projectTemplateUid",
            "in": "path",
            "description": "Project template UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referenceFileId",
            "in": "path",
            "description": "Reference file ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/octet-stream"
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/references": {
      "get": {
        "tags": [
          "Reference File"
        ],
        "summary": "List project reference files",
        "description": "",
        "operationId": "listReferenceFiles",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filename substring filter",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateCreatedSince",
            "in": "query",
            "description": "date time in ISO 8601 UTC format",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "UID of user",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting at 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, 1-50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "FILENAME",
                "DATE_CREATED",
                "CREATED_BY"
              ],
              "default": "DATE_CREATED"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "DESC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferenceFilePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Reference File"
        ],
        "summary": "Delete project reference files (batch)",
        "description": "Required role: Administrator, Project Manager, Guest, or Submitter.\n                Vendor organizations may delete only their own files if the project security settings allow it\n                (`securitySettings.vendors.jobVendorsMayUploadReferences`, see Get project).\n                The underlying file in storage is deleted if no other reference points to it.",
        "operationId": "batchDeleteReferenceFiles",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ProjectReferenceFilesRequestDtoV1"
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/references/creators": {
      "get": {
        "tags": [
          "Reference File"
        ],
        "summary": "List project reference file creators",
        "description": "The result is not paged and returns up to 50 users.\n                If the requested user is not included, the search can be narrowed down with the `userName` parameter.\n            ",
        "operationId": "listReferenceFileCreators",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userName",
            "in": "query",
            "description": "Filter by username substring",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserReferencesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/references/download": {
      "post": {
        "tags": [
          "Reference File"
        ],
        "summary": "Download project reference files (batch)",
        "description": "Returns a single file when one reference is selected, or a ZIP archive for multiple.\n                Reference files are identified by integer ID (not UID).",
        "operationId": "batchDownloadReferenceFiles",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ProjectReferenceFilesRequestDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/references/{referenceFileId}": {
      "get": {
        "tags": [
          "Reference File"
        ],
        "summary": "Download project reference file",
        "description": "",
        "operationId": "downloadReference",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "referenceFileId",
            "in": "path",
            "description": "Reference file ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/references": {
      "post": {
        "tags": [
          "Reference File"
        ],
        "summary": "Create project reference files",
        "description": "\nThe `json` request part allows sending additional data as JSON,\nsuch as a text note that will be used for all the given reference files.\nIn case no `file` parts are sent, only 1 reference is created with the given note.\nEither at least one file must be sent or the note must be specified.\nExample:\n\n```\n{\n    \"note\": \"Sample text\"\n}\n```\n\nRequired role: Administrator, Project Manager, Guest, or Submitter.\nMaximum 50 files per request.\nVendor organizations may create reference files only if `securitySettings.vendors.jobVendorsMayUploadReferences`\nis enabled on the project (see Get project).\n",
        "operationId": "createReferenceFiles",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ProjectReferenceFileApi2ResourceCreateReferenceFilesRequest"
              }
            }
          },
          "description": "Multipart request with files and JSON",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferenceFilesDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/segmentationRules": {
      "get": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "List segmentation rules",
        "description": "Lists segmentation rules of the organization. The language and languages parameters are mutually exclusive; providing both returns 400 Bad Request. The locales parameter is normalized before filtering. Requires an internal role (ADMIN or PROJECT_MANAGER).",
        "operationId": "getListOfSegmentationRules",
        "parameters": [
          {
            "name": "locales",
            "in": "query",
            "description": "Filter by multiple locales",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "LOCALE",
                "NAME",
                "FILENAME",
                "PRIMARY",
                "OWNER",
                "DATE_CREATED"
              ],
              "default": "DATE_CREATED"
            }
          },
          {
            "name": "order",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "language",
            "in": "query",
            "description": "Filter by language",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "languages",
            "in": "query",
            "description": "Filter by multiple languages",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filter by filename",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "primary",
            "in": "query",
            "description": "Filter by the primary field",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ownerUid",
            "in": "query",
            "description": "Filter by owner",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentationRulePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Create segmentation rule",
        "description": "Creates a new segmentation rule from the streamed file and the segRule JSON object passed in the segRule header. The segRule header carries a JSON object with the fields name, locale, primary and filename (the same SegmentationRuleDto shape returned by the GET action). Requires an internal role (ADMIN or PROJECT_MANAGER) with the setupServer access right.",
        "operationId": "createSegmentationRule",
        "parameters": [
          {
            "name": "segRule",
            "in": "header",
            "required": true,
            "example": "{name:'name', locale:'en', primary:'false', filename:'extra_file.xml'}",
            "schema": {
              "type": "string",
              "format": "application/json: {name:'name', locale:'en', primary:'false', filename:'extra_file.xml'}",
              "minLength": 0,
              "maxLength": 512
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentationRuleDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/segmentationRules/owners": {
      "get": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Get owners of segmentation rules",
        "description": "Requires an internal role (ADMIN or PROJECT_MANAGER).",
        "operationId": "getSegmentationRulesOwners",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentationRulesOwnersDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/segmentationRules/{locale}/exportDefault": {
      "get": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Export default segmentation rules",
        "description": "",
        "operationId": "exportDefaultSegmentationRules",
        "parameters": [
          {
            "name": "locale",
            "in": "path",
            "description": "Locale code of the default segmentation rules to export",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "SRX",
                "XLSX"
              ],
              "default": "SRX"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/segmentationRules/{segRuleUid}": {
      "get": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Get segmentation rule",
        "description": "Requires an internal role (ADMIN or PROJECT_MANAGER).",
        "operationId": "getSegmentationRule",
        "parameters": [
          {
            "name": "segRuleUid",
            "in": "path",
            "description": "Unique identifier of the segmentation rule",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentationRuleDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Edit segmentation rule",
        "description": "Requires an internal role (ADMIN or PROJECT_MANAGER) with the setupServer access right.",
        "operationId": "updatesSegmentationRule",
        "parameters": [
          {
            "name": "segRuleUid",
            "in": "path",
            "description": "Unique identifier of the segmentation rule",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditSegmentationRuleDtoV1"
              }
            }
          },
          "description": "Updated segmentation rule",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentationRuleDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Delete segmentation rule",
        "description": "Deletes a segmentation rule and clears its references from converter import settings. Requires an internal role (ADMIN or PROJECT_MANAGER) with the setupServer access right.",
        "operationId": "deletesSegmentationRule",
        "parameters": [
          {
            "name": "segRuleUid",
            "in": "path",
            "description": "Unique identifier of the segmentation rule",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/segmentationRules/{segRuleUid}/export": {
      "get": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Export segmentation rule",
        "description": "",
        "operationId": "exportSegmentationRule",
        "parameters": [
          {
            "name": "segRuleUid",
            "in": "path",
            "description": "Unique identifier of the segmentation rule",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/segmentationRules/{segRuleUid}/file": {
      "put": {
        "tags": [
          "Segmentation Rules"
        ],
        "summary": "Replace segmentation rule file",
        "description": "Replaces the file content of an existing segmentation rule, preserving its id and uid. Requires an internal role (ADMIN or PROJECT_MANAGER) with the setupServer access right.",
        "operationId": "replaceSegmentationRuleFile",
        "parameters": [
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?filename\\*=UTF-8''(.+)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "segRuleUid",
            "in": "path",
            "description": "Unique identifier of the segmentation rule",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SegmentationRuleDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/services": {
      "get": {
        "tags": [
          "Service"
        ],
        "summary": "List services",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the Server Setup access right enabled.",
        "operationId": "listServices",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting from 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "PUBLIC_NAME",
                "TYPE"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sorting order",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ],
              "default": "desc"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceListEntryPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Service"
        ],
        "summary": "Create service",
        "description": "",
        "operationId": "createService",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateServiceDtoV1"
              }
            }
          },
          "description": "Service creation request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Service"
        ],
        "summary": "Delete services (batch)",
        "description": "",
        "operationId": "deleteServices",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteServicesDtoV1"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/services/{serviceUid}": {
      "get": {
        "tags": [
          "Service"
        ],
        "summary": "Get service",
        "description": "",
        "operationId": "getService",
        "parameters": [
          {
            "name": "serviceUid",
            "in": "path",
            "description": "UID of the service",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Service"
        ],
        "summary": "Edit service",
        "description": "Partial update — omitted fields retain their current values.",
        "operationId": "editService",
        "parameters": [
          {
            "name": "serviceUid",
            "in": "path",
            "description": "UID of the service",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateServiceDtoV1"
              }
            }
          },
          "description": "Service update request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Service"
        ],
        "summary": "Delete service",
        "description": "",
        "operationId": "deleteService",
        "parameters": [
          {
            "name": "serviceUid",
            "in": "path",
            "description": "UID of the service",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/organizations/statusAutomationSettings": {
      "get": {
        "tags": [
          "Setup"
        ],
        "summary": "Get user's organization status automation settings",
        "description": "",
        "operationId": "getCurrentOrganizationStatusAutomationSettings",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Setup"
        ],
        "summary": "Save user's organization status automation settings",
        "description": "",
        "operationId": "saveCurrentOrganizationStatusAutomationSettings",
        "requestBody": {
          "$ref": "#/components/requestBodies/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/spellCheck/check": {
      "post": {
        "tags": [
          "Spell Check"
        ],
        "summary": "Spell check",
        "description": "Spell check using the settings of the user's organization",
        "operationId": "check",
        "requestBody": {
          "$ref": "#/components/requestBodies/SpellCheckRequestDtoSpellCheckV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpellCheckResponseDtoSpellCheckV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/spellCheck/check/{jobUid}": {
      "post": {
        "tags": [
          "Spell Check"
        ],
        "summary": "Spell check for job",
        "description": "Spell check using the settings from the project of the job",
        "operationId": "checkByJob",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SpellCheckRequestDtoSpellCheckV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpellCheckResponseDtoSpellCheckV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/spellCheck/suggest": {
      "post": {
        "tags": [
          "Spell Check"
        ],
        "summary": "Suggest a word",
        "description": "Spell check suggest using the users's spell check dictionary",
        "operationId": "suggest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuggestRequestDtoSpellCheckV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuggestResponseDtoSpellCheckV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/spellCheck/words": {
      "post": {
        "tags": [
          "Spell Check"
        ],
        "summary": "Add word to dictionary",
        "description": "",
        "operationId": "addWord",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DictionaryItemDtoSpellCheckV1"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/subDomains": {
      "get": {
        "tags": [
          "SubDomain"
        ],
        "summary": "List subdomains",
        "description": "Subdomain is used together with domain to further refine the content-type/category classification of projects, project templates, translation memories, and term bases. Linguists, submitters, and guests receive only subdomains from projects they are assigned to.",
        "operationId": "listSubDomains",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by subdomain name - used together with domain to further refine content-type/category classification",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "UID of user",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "DATE_CREATED"
              ],
              "default": "NAME"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubDomainPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "SubDomain"
        ],
        "summary": "Create subdomain",
        "description": "Requires the subDomainCreate access right. Subdomain names must be unique within the organization.",
        "operationId": "createSubDomain",
        "requestBody": {
          "$ref": "#/components/requestBodies/SubDomainEditDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubDomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/subDomains/{subDomainUid}": {
      "get": {
        "tags": [
          "SubDomain"
        ],
        "summary": "Get subdomain",
        "description": "Project managers who did not create the subdomain need the clientViewOther access right (default off) to view it.",
        "operationId": "getSubDomain",
        "parameters": [
          {
            "name": "subDomainUid",
            "in": "path",
            "description": "UID of the subdomain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubDomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "SubDomain"
        ],
        "summary": "Edit subdomain",
        "description": "Project managers can edit another user's subdomain only if they have the clientEditOther access right (default off).",
        "operationId": "updateSubDomain",
        "parameters": [
          {
            "name": "subDomainUid",
            "in": "path",
            "description": "UID of the subdomain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SubDomainEditDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubDomainDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "SubDomain"
        ],
        "summary": "Delete subdomain",
        "description": "Deleting a subdomain clears its reference from all projects, project templates, term bases, and translation memories. Project managers who did not create the subdomain need the clientDeleteOther access right (default off) to delete it.",
        "operationId": "deleteSubDomain",
        "parameters": [
          {
            "name": "subDomainUid",
            "in": "path",
            "description": "UID of the subdomain",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/languages": {
      "get": {
        "tags": [
          "Supported Languages"
        ],
        "summary": "List supported languages",
        "description": "When the active parameter is omitted or false, all languages supported by the platform are returned. When active is true, the result is filtered to the locales currently enabled for the calling user's organization.",
        "operationId": "listOfLanguages",
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "description": "When true, return only the languages whose locales are currently enabled for the calling user's organization. When omitted or false, return all supported languages.",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LanguageListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/languages/active": {
      "put": {
        "tags": [
          "Supported Languages"
        ],
        "summary": "Update active languages for organization",
        "description": "Replaces the set of locales enabled as active languages for the calling user's organization. Requires the ADMIN role. Every locale code must be a valid Phrase locale code (see List supported languages); an unsupported code is rejected and none of the submitted locales are applied. An empty set is accepted and clears all active languages for the organization - this is destructive and disables every language, so callers should not send an empty body unintentionally.",
        "operationId": "updateActiveLanguages",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "description": "Set of Phrase locale codes to enable as active languages for the organization. An empty set clears all active languages for the organization.",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/termBases/createByJob": {
      "post": {
        "tags": [
          "Term Base",
          "Job"
        ],
        "summary": "Create term in job's term bases",
        "description": "Create new term in the write term base assigned to the job",
        "operationId": "createTermByJob",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTermsDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermPairDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "List term bases",
        "description": "Term base only; does not accept a glossary UID. Glossaries have their own dedicated account-level CRUD under /api2/v1/glossaries.",
        "operationId": "listTermBases",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "Language of the term base",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "description": "Filter by client UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainId",
            "in": "query",
            "description": "Filter by domain UID - domain is the org-configurable field used to tag/categorize content type (e.g. Marketing, Legal, Medical, Technical)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainId",
            "in": "query",
            "description": "Filter by sub-domain UID - used together with domain to further refine content-type/category classification",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermBaseDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Term Base"
        ],
        "summary": "Create term base",
        "description": "Governs the term base resource itself (name, languages, ownership, whole-term-base deletion) via account-level term-base rights. This is distinct from the per-term content permissions on the terms/concepts endpoints below, which also allow LINGUIST users assigned to the project (see createTerm/updateTerm/deleteTerm). Term base only; does not accept a glossary UID. Glossaries have their own dedicated account-level CRUD under /api2/v1/glossaries.",
        "operationId": "createTermBase",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermBaseCreateDtoV1"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermBaseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Get term base",
        "description": "Term base only; does not accept a glossary UID. Glossaries have their own dedicated account-level CRUD under /api2/v1/glossaries.",
        "operationId": "getTermBase",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermBaseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Term Base"
        ],
        "summary": "Edit term base",
        "description": "Adding new languages is always possible. A language can only be removed when the term base has no terms and is not assigned to any project or project template; otherwise the request fails with TermBaseInvalidInput and no language is removed. Governs the term base resource itself (name, languages, ownership, whole-term-base deletion) via account-level term-base rights. This is distinct from the per-term content permissions on the terms/concepts endpoints below, which also allow LINGUIST users assigned to the project (see createTerm/updateTerm/deleteTerm). Term base only; does not accept a glossary UID. Glossaries have their own dedicated account-level CRUD under /api2/v1/glossaries.",
        "operationId": "updateTermBase",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermBaseUpdateDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermBaseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Term Base"
        ],
        "summary": "Delete term base",
        "description": "Governs the term base resource itself (name, languages, ownership, whole-term-base deletion) via account-level term-base rights. This is distinct from the per-term content permissions on the terms/concepts endpoints below, which also allow LINGUIST users assigned to the project (see createTerm/updateTerm/deleteTerm). Term base only; does not accept a glossary UID. Glossaries have their own dedicated account-level CRUD under /api2/v1/glossaries.",
        "operationId": "deleteTermBase",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purge",
            "in": "query",
            "description": "When true, permanently deletes the term base; when false, it can be restored",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/browse": {
      "post": {
        "tags": [
          "Term Base"
        ],
        "summary": "Browse term base",
        "description": "Term base only; does not accept a glossary UID.",
        "operationId": "browseTerms",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BrowseRequestDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponseListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/concepts": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "List concepts",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "listConcepts",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptListResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Term Base"
        ],
        "summary": "Create concept",
        "description": "Creates an empty concept grouping with no terms. To add terms, use POST /api2/v1/termBases/{termBaseUid}/terms with conceptId pointing to this concept. Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "createConcept",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConceptEditDtoV1"
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptWithMetadataDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Term Base"
        ],
        "summary": "Delete concepts",
        "description": "Callable by ADMIN, PROJECT_MANAGER, and LINGUIST users assigned to the term base's project. This is distinct from the account-level rights gating the term base resource itself (see createTermBase/updateTermBase/deleteTermBase). There is no purge/restore option — the concepts and all their terms cannot be recovered once deleted. Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "deleteConcepts",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConceptListReferenceV1"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/concepts/{conceptId}": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Get concept",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "getConcept",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conceptId",
            "in": "path",
            "description": "Concept ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptWithMetadataDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Term Base"
        ],
        "summary": "Update concept",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "updateConcept",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conceptId",
            "in": "path",
            "description": "Concept ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ConceptEditDtoV1"
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptWithMetadataDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Term Base"
        ],
        "summary": "Delete concept",
        "description": "Callable by ADMIN, PROJECT_MANAGER, and LINGUIST users assigned to the term base's project. This is distinct from the account-level rights gating the term base resource itself (see createTermBase/updateTermBase/deleteTermBase). There is no purge/restore option — the concept and all its terms cannot be recovered once deleted. Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "deleteConcept",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conceptId",
            "in": "path",
            "description": "Concept ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/concepts/{conceptId}/terms": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Get terms of concept",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "listTermsOfConcept",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "conceptId",
            "in": "path",
            "description": "Concept ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConceptDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/export": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Export term base",
        "description": "Term base only; does not accept a glossary UID.",
        "operationId": "exportTermBase",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "Tbx",
                "Xlsx"
              ],
              "default": "Tbx"
            }
          },
          {
            "name": "charset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "UTF-8"
            }
          },
          {
            "name": "termStatus",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NEW",
                "APPROVED"
              ]
            }
          },
          {
            "name": "termField",
            "in": "query",
            "description": "List of term fields to export (applicable only for XLSX format)",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "status",
                  "forbidden",
                  "preferred",
                  "caseSensitive",
                  "exactMatch",
                  "usageExample",
                  "part_of_speech",
                  "gender",
                  "number",
                  "note",
                  "short_translation",
                  "term_type",
                  "createdBy",
                  "createdAt",
                  "modifiedBy",
                  "modifiedAt",
                  "concept_domain",
                  "concept_subdomain",
                  "concept_url",
                  "concept_definition",
                  "concept_note"
                ]
              }
            }
          },
          {
            "name": "domain",
            "in": "query",
            "description": "Domain UID to filter by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomain",
            "in": "query",
            "description": "SubDomain UID to filter by",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/lastBackgroundTask": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Last import status",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "getLastBackgroundTask",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundTasksTbDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/metadata": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Get term base metadata",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "getTermBaseMetadata",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataTbDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/relatedProjects": {
      "get": {
        "tags": [
          "Term Base",
          "Project"
        ],
        "summary": "List related projects",
        "description": "Reverse lookup of the projects a term base is attached to or assigned to. Term base only; does not accept a glossary UID — glossaries attach to machine translation profiles rather than to projects, so there is no equivalent relatedProjects endpoint for glossaries.",
        "operationId": "getRelatedProjectsForTermBase",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 25",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/search": {
      "post": {
        "tags": [
          "Term Base"
        ],
        "summary": "Search term base",
        "description": "Term base only; does not accept a glossary UID.",
        "operationId": "searchTerms",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermBaseSearchRequestDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTbDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/terms": {
      "post": {
        "tags": [
          "Term Base"
        ],
        "summary": "Create term",
        "description": "Set conceptId to assign the term to an existing concept, otherwise a new concept will be created. Callable by ADMIN, PROJECT_MANAGER, and LINGUIST users assigned to the term base's project. A LINGUIST can always create a term with status New; creating a term with status Approved additionally requires the user's editAllTermsInTB right. This is distinct from the account-level rights gating the term base resource itself (see createTermBase/updateTermBase/deleteTermBase). Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project. When termBaseUid refers to a glossary, term creation is additionally subject to the glossary's term-count limit and fails once that limit is exceeded.",
        "operationId": "createTerm",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermCreateDtoV1"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Term Base"
        ],
        "summary": "Clear term base",
        "description": "Deletes all terms. Term base only; does not accept a glossary UID.",
        "operationId": "clearTermBase",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/termBases/{termBaseUid}/terms/{termId}": {
      "get": {
        "tags": [
          "Term Base"
        ],
        "summary": "Get term",
        "description": "Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "getTerm",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "termId",
            "in": "path",
            "description": "Term ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Term Base"
        ],
        "summary": "Edit term",
        "description": "Callable by ADMIN, PROJECT_MANAGER, and LINGUIST users assigned to the term base's project. A LINGUIST can always edit a term with status New; editing/approving an already-Approved term additionally requires the user's editAllTermsInTB right. This is distinct from the account-level rights gating the term base resource itself (see createTermBase/updateTermBase/deleteTermBase). Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "updateTerm",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "termId",
            "in": "path",
            "description": "Term ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TermEditDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TermDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Term Base"
        ],
        "summary": "Delete term",
        "description": "Callable by ADMIN, PROJECT_MANAGER, and LINGUIST users assigned to the term base's project. A LINGUIST can always delete a term with status New; deleting an already-Approved term additionally requires the user's editAllTermsInTB right. This is distinct from the account-level rights gating the term base resource itself (see createTermBase/updateTermBase/deleteTermBase). There is no purge/restore option — the term cannot be recovered once deleted. Works against both a term base UID and a glossary UID — Glossary and TermBase are sibling resource types, and this endpoint resolves termBaseUid polymorphically against either. When termBaseUid refers to a glossary, access is restricted to ADMIN/PROJECT_MANAGER users with the setupServer right, rather than also allowing GUEST/LINGUIST users assigned to the term base's project.",
        "operationId": "deleteTerm",
        "parameters": [
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "termId",
            "in": "path",
            "description": "Term ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/{jobUid}/termBases/searchByJob": {
      "post": {
        "tags": [
          "Term Base",
          "Job"
        ],
        "summary": "Search job's term bases",
        "description": "Search all read term bases assigned to the job",
        "operationId": "searchTermsByJobV2",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTbByJobRequestDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTbResponseListDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/projects/{projectUid}/jobs/{jobUid}/termBases/searchInTextByJob": {
      "post": {
        "tags": [
          "Term Base",
          "Job"
        ],
        "summary": "Search terms in text",
        "description": "Search in text in all read term bases assigned to the job",
        "operationId": "searchTermsInTextByJobV2",
        "parameters": [
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTbInTextByJobRequestDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchInTextResponseList2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/termBases/{termBaseUid}/upload": {
      "post": {
        "tags": [
          "Term Base"
        ],
        "summary": "Upload term base",
        "description": "\nTerms can be imported from XLS/XLSX and TBX file formats into a term base.\nSee <a target=\"_blank\" href=\"https://support.phrase.com/hc/en-us/articles/5709733372188\">Phrase Help Center</a>\n\nTerms in a language not currently configured on this term base are not imported and no error is raised. To confirm which languages were imported by an upload, use GET /termBases/{termBaseUid}/lastBackgroundTask (finishedDataText) rather than assuming success from an error-free async response.\n",
        "operationId": "importTermBaseV2",
        "parameters": [
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?filename\\*=UTF-8''(.+)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "termBaseUid",
            "in": "path",
            "description": "Term base UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "charset",
            "in": "query",
            "description": "Character encoding of the file, default UTF-8",
            "required": false,
            "schema": {
              "type": "string",
              "default": "UTF-8"
            }
          },
          {
            "name": "strictLangMatching",
            "in": "query",
            "description": "When true, only terms with an exact language match are imported",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "updateTerms",
            "in": "query",
            "description": "When true (default), a term matches an existing concept only when the imported concept ID matches an existing concept ID on this term base and carries a Phrase-internal \"|update\" suffix marker, produced by exporting this term base, editing the file, and reimporting it. Content that does not match an existing concept ID this way is always inserted as new, regardless of whether identical text already exists - so a plain re-upload of a file already imported once, or content from a third-party TBX/XLS source, always creates duplicate terms; it does not match or deduplicate by term text or locale. When false, only new concepts/terms are created.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream2"
        },
        "responses": {
          "202": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "TermBaseInvalidInput"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/humanTranslate": {
      "post": {
        "tags": [
          "Translation"
        ],
        "summary": "Human translate (Gengo or Unbabel)",
        "description": "",
        "operationId": "humanTranslate",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HumanTranslateJobsDtoV1"
              }
            }
          },
          "description": "Jobs and human translation settings",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/translations/translateWithMachineTranslation": {
      "post": {
        "tags": [
          "Translation"
        ],
        "summary": "Translate using machine translation",
        "description": "            Translates source texts using the job's configured machine             translation settings. The MT origin is determined from             request headers. Requires job machine translation access;             project-level machine translation access may also be checked.",
        "operationId": "machineTranslationJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationRequestDtoV1"
              }
            }
          },
          "description": "Source texts to translate",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MachineTranslateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/projects/{projectUid}/jobs/preTranslate": {
      "post": {
        "tags": [
          "Translation"
        ],
        "summary": "Pre-translate job",
        "description": "\nStarts pre-translation for one or more jobs. Returns HTTP 202 immediately; translation runs asynchronously.\n\n**Precondition:** Every job must have `importStatus.status == \"OK\"` (check via [Get job](../job/get-job)).\nSubmitting a job before import completes returns `400 JOB_NOT_READY`.\n\n**Precondition:** Unless `useProjectPreTranslateSettings` is explicitly `true`, `preTranslateSettings`\nmust be provided explicitly. Omitting both fields returns `400 PRE_TRANSLATE_SETTINGS_REQUIRED` rather\nthan silently falling back to hardcoded default settings.\n\n**Async tracking:** The response body contains an `asyncRequest` object. Poll\n[Get asynchronous request](../async-request/get-asynchronous-request) (action: `PRE_TRANSLATE`)\nto track completion. `asyncResponse` is `null` while pending.\n\n**Alternative:** Set `preTranslate: true` in the `Memsource` header when calling\n[Create job](../job/create-job) to trigger pre-translation automatically after import,\nremoving the need to poll `importStatus.status` first.\n\n**MT engine:** `useMachineTranslation` has no engine-selection field of its own — pre-translation\nuses whichever MT engine is currently assigned to the project. See\n[Get project machine translate settings](../project/get-project-machine-translate-settings) /\n[Assign machine translate engine to project](../project/assign-machine-translate-engine-to-project)\nto check or change the effective engine.\n\n**Verifying pre-translation:** a completed parent async request carries no MT-level warnings of its own —\n`asyncResponse` is always an empty response object, whether or not any individual job produced a warning.\nWarnings raised for an individual job during pre-translation are recorded in that job's history and are what\ntriggers the `PRE_TRANSLATION_FINISHED` webhook; check job history or subscribe to that webhook rather than\ninferring \"no warnings\" from a completed parent async request. To confirm pre-translation actually produced\ncontent (as opposed to merely running without error), read `machineTranslationRelevantSegmentsCount` from\n[Get segments count](../job/get-segments-count) — it counts segments with both a non-empty target and stored MT\noutput, independent of whether that content has since been confirmed.\n\n**Overwrite behaviour:** `overwriteExistingTranslations` defaults to `false`. Re-running this operation over jobs\nthat already have target content is therefore a legitimate no-op for those segments by default, not an error —\npass `overwriteExistingTranslations: true` explicitly to force re-translation of already-populated targets.\n\n**Workflow step targeting:** Apply pre-translation only to the lowest active workflow step.\nTriggering pre-translation on a higher workflow step after the project has already been\npre-translated breaks real-time propagation from lower steps.\n",
        "operationId": "preTranslateV3",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreTranslateJobsV3DtoV3"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "JOB_NOT_READY | PRE_TRANSLATE_SETTINGS_REQUIRED"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/projects/{projectUid}/jobs/{jobUid}/transMemories/searchSegment": {
      "post": {
        "tags": [
          "Translation Memory",
          "Job"
        ],
        "summary": "Search translation memory for segment by job",
        "description": "Returns at most <i>maxSegments</i> records with <i>score >= scoreThreshold</i> and at most <i>maxSubsegments</i> records which are subsegment, i.e. the source text is substring of the query text.",
        "operationId": "searchSegmentByJob",
        "parameters": [
          {
            "name": "projectUid",
            "in": "path",
            "description": "Project UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jobUid",
            "in": "path",
            "description": "Job UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTMByJobRequestDtoV1"
              }
            }
          },
          "description": "Segment search request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTmDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Create translation memory",
        "description": "Creates a new translation memory. At least one target language must be provided.\nOptional associations (client, domain, subDomain, businessUnit) are resolved by ID.\nRequires the caller to have the transMemoryCreate access right.",
        "operationId": "createTransMemory",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransMemoryCreateDtoV1"
              }
            }
          },
          "description": "Translation memory creation request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/bulk": {
      "delete": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Delete translation memories (batch)",
        "description": "Deletes up to 100 translation memories in a single request. When purge=true on the request body\nall listed TMs are permanently erased. Each TM UID must be accessible to the caller; a missing or forbidden UID\ncauses the entire request to fail.",
        "operationId": "bulkDeleteTransMemories",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkDeleteTmDtoV1"
              }
            }
          },
          "description": "Batch delete request with TM UIDs and optional purge flag",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/downloadCleaned/{asyncRequestId}": {
      "get": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Download cleaned TM",
        "description": "Downloads the ZIP archive produced by extractCleaned. Returns 403 Forbidden when the\nextract-cleaned feature is not enabled for the organisation. The asyncRequest must be in a completed state.",
        "operationId": "downloadCleanedTM",
        "parameters": [
          {
            "name": "asyncRequestId",
            "in": "path",
            "description": "Async request ID returned by extractCleaned",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/downloadExport/{asyncRequestId}": {
      "get": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Download export",
        "description": "Downloads the TMX or XLSX file produced by exportByQueryAsync.\nThe asyncRequest must be in a completed state before downloading.\nUse the fields parameter to select which columns to include when format=XLSX.\nUse the packaging parameter to wrap a TMX download in a ZIP archive containing a single TMX entry; packaging=ZIP is not supported for format=XLSX, since XLSX is already a compressed container.",
        "operationId": "downloadSearchResult",
        "parameters": [
          {
            "name": "asyncRequestId",
            "in": "path",
            "description": "Async request ID returned by exportByQueryAsync",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "description": "Export file format",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "TMX",
                "XLSX"
              ],
              "default": "TMX"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Fields to include in exported XLSX",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ID",
                  "TEXT",
                  "PREVIOUS_SEGMENT",
                  "NEXT_SEGMENT",
                  "CONTEXT_KEY",
                  "CREATED_BY",
                  "CREATED_AT",
                  "MODIFIED_BY",
                  "MODIFIED_AT",
                  "CLIENT",
                  "PROJECT",
                  "DOMAIN",
                  "SUBDOMAIN",
                  "NOTE",
                  "REVIEWED",
                  "ALIGNED",
                  "FILENAME",
                  "METADATA"
                ]
              }
            }
          },
          {
            "name": "packaging",
            "in": "query",
            "description": "Archive packaging for the downloaded file. ZIP is only supported for format=TMX",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NONE",
                "ZIP"
              ],
              "default": "NONE"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/extractCleaned": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Extract cleaned translation memory",
        "description": "Queues an asynchronous job that extracts cleaned TM content into a ZIP archive.\nReturns 403 Forbidden when the extract-cleaned feature is not enabled for the organisation.\nPoll the returned asyncRequest for completion, then download the result via downloadCleaned/{asyncRequestId}.",
        "operationId": "exportCleanedTMs",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CleanedTransMemoriesDtoV1"
              }
            }
          },
          "description": "Cleaned TM extraction request",
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}": {
      "get": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Get translation memory",
        "description": "",
        "operationId": "getTransMemory",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Edit translation memory",
        "description": "",
        "operationId": "editTransMemory",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransMemoryEditDtoV1"
              }
            }
          },
          "description": "Translation memory edit request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Delete translation memory",
        "description": "Deletes the specified translation memory. When purge=true the TM data is permanently erased;\notherwise the TM is soft-deleted and can be recovered by an administrator.\nRequires internal role and DELETE permission on the TM.",
        "operationId": "deleteTransMemory",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purge",
            "in": "query",
            "description": "Permanently erase the TM data (default: false)",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/exportByQueryAsync": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Search translation memory",
        "description": "\n**Overview**\nRuns an asynchronous TMX export based on optional wildcard/phrase queries and optional metadata filters.\nThe job streams filtered translation units into TMX via the downstream `/export_tmx_by_query` endpoint.\nUse `downloadExport/{asyncRequestId}` to fetch the finished file.\n\n**Flow**\n1. Caller posts `ExportByQueryDto`.\n2. Service queues backend export (job metadata marks it asynchronous).\n3. Response contains `asyncRequest` + `asyncExport` descriptors so you can poll or receive callbacks.\n\n**`queries` + `queryLangs` — intersection (AND), optional**\n- `queries` and `queryLangs` are optional and must align 1-to-1 when provided.\n- Each pair applies a search expression to its locale. Multiple pairs are **AND-intersected**: a TU must satisfy every pair (it must have a TUV in each pair's locale that matches the query).\n- Query values: unquoted text = contains; quoted text = phrase; `*`/`?` wildcards (max 5/10); no regex/boolean operators.\n- `\"*\"` means match-all **but the locale filter still applies** — the TU must have a TUV in that locale (real AND constraint).\n- `\"\"` (empty string) or null means **no constraint** — that pair is ignored entirely and does not participate in the AND. Sending all-empty queries is the same as omitting `queries` altogether.\n- When `queries` is omitted or all entries are empty/null, the export falls through to OR-over-`exportTargetLangs` (see below).\n\n**`exportTargetLangs` — disjunction (OR), optional**\n- Controls which target TUVs are written to the TMX. A TU is kept if it has at least one TUV matching any of the listed locales.\n- `null` / omitted — no locale filter; the **whole TU** is exported with **all** its target TUVs.\n- Present but empty (or all entries invalid) — produces an **empty TMX** (not the same as null).\n- To export TUs updated in any of N languages (OR semantics), put the N locales in `exportTargetLangs` and leave `queries`/`queryLangs` empty — do NOT put them in `queries`/`queryLangs` (that would AND them).\n\n**Examples**\nExport TUs that have an es or de TUV (OR — recommended for multi-language sync):\n`{ \"exportTargetLangs\": [\"es_es\",\"de_de\"] }`\n\nExport TUs that have BOTH es AND de TUVs (AND):\n`{ \"queries\": [\"*\",\"*\"], \"queryLangs\": [\"es_es\",\"de_de\"], \"exportTargetLangs\": [\"es_es\",\"de_de\"] }`\n\n**Filtering**\n- Timestamp bounds (`createdAtMin/Max`, `modifiedAtMin/Max`) and author filters (`createdBy`, `modifiedBy`) narrow the TU set before export.\n\n**Output & limits**\n- Output is always TMX, streamed in chunks; `dto.filename` never affects which TUs are exported — it only names the\ndownloaded file (for `packaging=NONE` it names the file itself; for `packaging=ZIP` it also names the outer ZIP\ndownload, with its extension swapped to `.zip`, and is additionally used as the TMX entry name inside the archive),\nand defaults to a name derived from the TM when omitted.\n- Requests with excessive locales or wildcard limit violations reject with `400`.\n- If no matches remain after filtering, the job still produces an empty TMX.\n\n**Callbacks & polling**\n- Provide `callbackUrl` to receive completion notification from the async mediator; otherwise poll `asyncRequest` via standard async APIs and download through `/downloadExport/{asyncRequestId}` when ready.\n",
        "operationId": "exportByQueryAsync",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportByQueryDtoV1"
              }
            }
          },
          "description": "Export by query request payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncExportTMByQueryResponseDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/lastBackgroundTask": {
      "get": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Get last task information",
        "description": "",
        "operationId": "getBackgroundTasksForTransMems",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BackgroundTasksTmDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/metadata": {
      "get": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Get translation memory metadata (segment count and size statistics)",
        "description": "Returns size statistics for a translation memory: the total number of segments (segmentsCount), the deduplicated segment count (deduplicatedSegmentsCount), and, when byLanguage=true, the per-language segment counts (metadataByLanguage). Use this to report a translation memory's size or to compare translation memories by segment count.",
        "operationId": "getMetadata",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "byLanguage",
            "in": "query",
            "description": "When true, include per-language segment counts in metadataByLanguage (default: false)",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MetadataResponseTm"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/relatedProjects": {
      "get": {
        "tags": [
          "Translation Memory",
          "Project"
        ],
        "summary": "List related projects",
        "description": "Reverse lookup of the projects a translation memory is attached to, used in, or assigned to.",
        "operationId": "getRelatedProjects",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Project name to filter by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field(s)",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ASC",
                  "DESC"
                ],
                "default": "DESC"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AbstractProjectDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/search": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Search translation memory (sync)",
        "description": "\n**Overview**\n- Searches a single translation memory using the primary TM scoring pipeline. The endpoint always returns up to 15 `SearchTMResponseDto` entries ordered by score.\n\n**Modes**\n- Standard segment search (default): normalize text, leverage penalties, thresholds, tag metadata, and context. This is the behavior when `phraseQuery=true`(default). The service calls the downstream `/search` endpoint with `wildcard=true` to allow combined exact/wildcard candidates in one pass.\n- Legacy phrase-only mode: set `phraseQuery=false` to disable the wildcard branch (`wildcard=false`, `exactIfQuotes=false`, `combinedExact=false`). Use when you need strict normalized matches without wildcard processing.\n\n**Request parameters**\n- `query` (required): search text. If `trimQuery=true` (default) leading/trailing whitespace is removed before sending to TM service.\n- `sourceLang` (required) and optional `targetLangs`: locales are normalized. When `targetLangs` is omitted the backend queries all TM targets.\n- `previousSegment` / `nextSegment`: optional context strings; when provided, the backend raises 101% matches that align with the surrounding segments.\n- `tagMetadata`: serialized inline tags; improves scoring and avoids dropping tag pairs.\n- `trimQuery`: default `true`. Set to `false` to preserve leading/trailing spaces (rare).\n- `phraseQuery`: default `true`. Controls whether wildcard/phrase helpers are enabled (see “Modes”).\n\n**Scoring & ordering**\n- Backend computes `grossScore` (raw similarity) and `score` (penalty-adjusted). 101% matches retain their priority even after penalties.\n- Ordering priority (per downstream service): `score DESC`, `grossScore DESC`, context match priority DESC, segment key ASC, TM priority ASC, timestamp DESC, TU id DESC.\n- Numeric replacements or uppercase normalization are not performed here (`replaceFigures=false`, `modifyTransText=false` in this controller).\n\n**Limits & behavior**\n- Returns maximum 15 matches; there is no `offset` or `totalFoundCount`.\n- Threshold is fixed to `0`, so all results above penalties are returned until limit.\n- Multiple target locales per TM are not supported, mirroring backend validation.\n- Logical operators (AND/OR/NOT) and wildcard expressions in `query` are interpreted only when `phraseQuery=true` enables the wildcard path.\n\n**Context & caching notes**\n- Downstream service may consult its 60-second cache for identical search inputs (including context and penalties). Freshly imported matches might appear with a short delay if cached results are reused.\n- If previous/next segments are omitted the search still runs, but 101% context boosts cannot trigger.\n\n**Error handling**\n- Invalid locales, blank `query`, or an inaccessible TM ID return `400`/`403`.\n- Backend may throw when multiple target locales are submitted for a single TM; the controller surfaces that error unchanged.\n",
        "operationId": "search",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchRequestDtoV1"
              }
            }
          },
          "description": "Search request payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTmDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/searchContent": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Search TM content",
        "description": "\n**Overview**\n- Searches TM content within a single Translation Memory (TM), matching against source and/or target segment text, with optional metadata filters.\n\n**Interpreting found results**\n- Searching a TARGET locale → response contains the matching target TUV plus the source TUV for that TU.\n- Searching a SOURCE locale → response contains the full TU (matching source TUV and all target TUVs). One TU counts as a single found item, but the UI should render N `<srcTUV, targetTUV>` pairs.\n\n**Query modes**\n- Exact query (plain text, no wildcard markers, regex disabled): if `sourceOperator|targetOperator=IS|IS_NOT` (exact mode) the whole field must (not) match exactly; if `CONTAINS|DOES_NOT_CONTAIN` (contains mode) the text may appear anywhere within the field.\n- Wildcard query (`sourceUseRegex|targetUseRegex=false`): uses `?` (single character) and `*` (multi-character) placeholders. Both expand within a single word only (they never cross whitespace) and may appear anywhere in the word — e.g. `trans*` matches `translation`/`transfer`; `*orning` and `mor*ng` match `morning`; `tr?nslate` matches `translate`/`trenslate`. Limits: max 5 `*` and 10 `?` per query.\n- Regex query (`sourceUseRegex|targetUseRegex=true`): `REGEXP` searches for substrings (not whole-word by default). The engine is Lucene's automaton engine (Elasticsearch fleet: EU on 8.19.x pending reindex, other envs on 9.4.x — Lucene 9–10), not PCRE: it supports `\\w`, `\\W`, `\\d`, `\\D`, `\\s`, `\\S` but not word boundaries `\\b`/`\\B`, look-around, or back-references. Unicode property classes (`\\p{L}`, `\\P{Nd}`, …) are broadened internally and re-validated exactly, so e.g. `\\p{L}\\.\\p{L}\\.` returns correct results. A construct the engine cannot evaluate returns \"Unsupported regular expression\"; a malformed expression returns \"Invalid regular expression\". Prefer wildcard queries for word-based matching.\n\n**CONTAINS / IS semantics (non-regex queries)**\n- `CONTAINS` is a phrase (substring) match: the query text must appear in the segment as one contiguous sequence, in the given word order. It is not an \"any word\" match — e.g. `small car` matches `the small car is red` but neither `small blue car` nor `car small`.\n- `IS` requires the whole segment to equal the query (after whitespace normalization).\n- Matching is case-insensitive unless `sourceMatchCase|targetMatchCase=true`.\n- Double quotes have no special meaning here (unlike the `search` and `wildCardSearch` endpoints) — they are searched as literal characters, so `\"small car\"` only matches segments that actually contain the quote characters. Do not wrap the query in quotes; `CONTAINS` already performs phrase matching.\n- A query may end or start in the middle of a word only when at least one other word of the query matches a whole word — e.g. `good morn` matches `good morning`, but `morn` alone does not. Use a wildcard (`morn*`) for partial-word matching.\n- Languages written without spaces (Chinese, Japanese, Korean, Thai) are matched as a contiguous character sequence as well.\n\n**Metadata filters**\n- `filters` accepts multiple metadata filter criteria (projects, domain, subdomains, ...); AND logic is applied across them.\n\n**Plan gating**\n- This is a Business/Enterprise (or legacy Ultimate/Enterprise) feature. When the caller's organization is not entitled to it, the response is `501 Not Implemented` with `errorCode: TRANS_MEMORY_SEARCH_NOT_ENABLED` — distinct from an unimplemented endpoint — so callers can tell \"not entitled\" apart from \"not built\".\n\n**Defaults & limitations**\n- Whitespace is normalized; the wildcard processor can filter out Phrase tags.\n- Even wildcard results are post-filtered to enforce correct word order.\n- A single query is capped at 10,000 matches. If more than 10,000 segments match, only the first 10,000 are returned and `totalElements` will not exceed that cap.\n\n**Execution & performance notes**\n- `REGEXP` uses non-analyzed normalized fields; additional post-validation ensures fidelity to the original query text.\n- Matching TUVs are collected until `batchSize` is reached; only then are sibling TUVs from the same TU loaded.\n- For pagination (changing `index`), ES results are re-processed to keep `totalElements` accurate.\n- Non-regex queries first retrieve candidate segments sharing at least one word with the query (for Chinese/Japanese: at least one character), then validate each candidate against the exact query sequence. All candidates are validated to compute `totalElements`, so queries consisting of very common words or characters can be slow on large TMs.\n- If the search exceeds the time limit (about 1 minute), the response is `400 Bad Request` (\"Search query for this TM takes too long...\"); refine the query or add filters.\n",
        "operationId": "searchContent",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "index",
            "in": "query",
            "description": "Start index for pagination (default: 0)",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "batchSize",
            "in": "query",
            "description": "Batch size, accepts values between 1 and 100, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 50
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchTmContentRequestDtoV1"
              }
            }
          },
          "description": "Search TM content request payload",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not Implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/segments": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Insert segment",
        "description": "",
        "operationId": "insertToTransMemory",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SegmentDtoV1"
              }
            }
          },
          "description": "Segment to insert",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/segments/{segmentId}": {
      "put": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Edit segment",
        "description": "",
        "operationId": "updateTranslation",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "Segment ID to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslationDtoV1"
              }
            }
          },
          "description": "Translation update payload",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Delete both source and translation",
        "description": "Not recommended for bulk removal of segments.\nThis operation is permanent - deleted segments cannot be recovered.",
        "operationId": "deleteSourceAndTranslations",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "Segment ID (comma-separated list for bulk delete)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/segments/{segmentId}/lang/{lang}": {
      "delete": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Delete segment of given language",
        "description": "Not recommended for bulk removal of segments.\nThis operation is permanent - deleted segments cannot be recovered.",
        "operationId": "deleteTranslation",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "segmentId",
            "in": "path",
            "description": "Segment ID (comma-separated list for bulk delete)",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lang",
            "in": "path",
            "description": "Language locale of the translation to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/targetLanguages": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Add target language to translation memory",
        "description": "",
        "operationId": "addTargetLangToTransMemory",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TargetLanguageDtoV1"
              }
            }
          },
          "description": "Target language to add",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/transMemories/{transMemoryUid}/wildCardSearch": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Wildcard search",
        "description": "\n**Overview**\n- Searches a single translation memory via Elasticsearch wildcard queries and returns up to `count` matches.\n\n**Query semantics**\n- `query` supports `*` (multi-character, single-token) and `?` (single-character) wildcards. Queries map directly to ES `query_string`, so ordering is flexible and Boolean operators from user input are ignored.\n- A `query` enclosed in double quotes (`\"...\"`) is an exact phrase search: the quotes are stripped and the words must appear next to each other in the given order (case-insensitive). Wildcards inside quotes are not expanded.\n- If `query` is omitted or blank, the service falls back to `*`, which matches any source segment.\n\n**Query examples**\nImagine having segment: `Good morning`\nQuery:\n- `good morn*` → matches `Good morning`.\n- `morn* good` → matches `Good morning` (word order ignored in contains mode).\n- `goof morn*` → also matches `Good morning` because any matching token is sufficient.\n- `*` → matches any TM segment.\n- `\"good morning\"` → matches `Good morning` (exact phrase); would not match `Good sunny morning`.\n- `\"good morn*\"` → no match: inside quotes `*` is not a wildcard, so the phrase `good morn` is searched.\n- ``Good morning`` (no quotes) → matches `Good morning`.\n\n**Request limits**\n- `count` must be between `1` and `50` (default `15`).\n- `offset` must be ≥ `0` (default `0`).\n- `sourceLang` must be a valid locale; `targetLangs` is optional (defaults to the TM target locales when omitted).\n\n**Scoring and ordering**\n- Backend returns both `grossScore` (raw) and `score` (penalty-adjusted, never negative).\n- Ordering priority: `score DESC`, `grossScore DESC`, TM order ASC, modified or created timestamp DESC, source TUV ID ASC.\n\n**Target handling**\n- Hits without targets in the requested locales are filtered out.\n- Multiple requested target locales produce multiple ordered target records per hit.\n\n**Validation & errors**\n- Invalid locales, `count`/`offset` outside allowed bounds, or missing TM access rights yield `400`/`403`.\n- Because no total size is returned, clients should consider using `offset + count` to detect pagination end (empty page ⇒ done).\n",
        "operationId": "wildcardSearch",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WildCardSearchRequestDtoV1"
              }
            }
          },
          "description": "Wildcard search request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponseListTmDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/transMemories": {
      "get": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "List translation memories",
        "description": "",
        "operationId": "listTransMemoriesV2",
        "parameters": [
          {
            "name": "text",
            "in": "query",
            "description": "Search by name or innerId",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uids",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sourceLangs",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "strictSourceLangMatching",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "targetLangs",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "strictTargetLangMatching",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "clientId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "domainName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subDomainName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "businessUnitId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "businessUnitName",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "innerId",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ownerUids",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "createdByUids",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "note",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdFrom",
            "in": "query",
            "description": "Date time in ISO 8601 UTC format",
            "required": false,
            "example": "2007-12-03T10:15:30.00Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdTo",
            "in": "query",
            "description": "Date time in ISO 8601 UTC format",
            "required": false,
            "example": "2007-12-03T10:15:30.00Z",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relatedProjects",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "relatedProjectsUids",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "collaboratorsUids",
            "in": "query",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 100, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort field name",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "INNER_ID",
                "NAME",
                "DATE_CREATED",
                "SOURCE_LOCALE",
                "CLIENT_NAME",
                "BUSINESS_UNIT_NAME",
                "DOMAIN_NAME",
                "SUBDOMAIN_NAME",
                "CREATED_BY_USERNAME",
                "OWNER_USERNAME",
                "ACTIVE_CONTRIBUTORS_COUNT",
                "COLLABORATORS_COUNT",
                "RELATED_PROJECTS_COUNT"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransMemoryPageDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/transMemories/{transMemoryUid}/align": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Align translation memory",
        "description": "Aligns files for a translation memory using its source locale. Submit either a                      sourceFile + targetFile pair, or a single archiveFile containing paired source and                      target files (mutually exclusive). Returns the aligned XLSX as an octet-stream, or                      400 with a warning when the backend cannot align an archiveFile bundle.",
        "operationId": "alignTransMemoryV2",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "sourceFile": {
                    "description": "Source language file to align. Required unless archiveFile is provided",
                    "type": "string",
                    "format": "binary"
                  },
                  "targetFile": {
                    "description": "Target language file to align. Required when sourceFile is provided;                             must be omitted when archiveFile is provided",
                    "type": "string",
                    "format": "binary"
                  },
                  "archiveFile": {
                    "description": ".zip archive containing paired source and target files. Mutually exclusive                             with sourceFile / targetFile",
                    "type": "string",
                    "format": "binary"
                  },
                  "targetLang": {
                    "description": "Target language code (e.g. de, fr-FR)",
                    "type": "string"
                  },
                  "segRuleSourceUid": {
                    "description": "UID of the segmentation rule to apply to the source file",
                    "type": "string"
                  },
                  "segRuleTargetUid": {
                    "description": "UID of the segmentation rule to apply to the target file",
                    "type": "string"
                  }
                },
                "required": [
                  "targetLang"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Aligned XLSX file"
          },
          "400": {
            "description": "Missing or conflicting file parameters, unsupported file format,                                or backend rejected the archiveFile bundle (warning returned)"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Caller lacks TM SHOW permission"
          },
          "404": {
            "description": "Translation memory not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/transMemories/{transMemoryUid}/export": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Export translation memory",
        "description": "Use [this API](../translation-memory/download-export) to download result. Requires Admin, Project Manager, or Guest role; not available to Linguist or Submitter roles. Linguist-role callers should use [List translation memory segments](../translation-memory/list-translation-memory-segments) instead.",
        "operationId": "exportV2",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportTMDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncExportTMResponseDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/transMemories/{transMemoryUid}/import": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Import translation memory",
        "description": "Accepts TMX (.tmx), XLIFF (.xlf, .xliff), MXLIFF (.mxlf, .mxliff), and Excel (.xls, .xlsx). Format is detected from the filename extension. This call is **asynchronous**, use [this API](../async-request/get-asynchronous-request) to check the result. Requires the \"Import into TMs created by other users\" access right (transMemoryImportOther) unless the caller owns or created the TM. See the [MXLIFF guide](https://developers.phrase.com/en/guides/mxliff/overview) for the MXLIFF format reference.",
        "operationId": "importTransMemoryV2",
        "parameters": [
          {
            "name": "Content-Length",
            "in": "header",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "transMemoryUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Content-Disposition",
            "in": "header",
            "description": "must match pattern `((inline|attachment); )?filename\\*=UTF-8''(.+)`",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "strictLangMatching",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "stripNativeCodes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "excludeNotConfirmedSegments",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/InputStream2"
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncRequestWrapperV2DtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/transMemories/{transMemoryUid}/segments": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "List translation memory segments",
        "description": "Synchronous, paginated JSON listing of translation memory segments. A blank or \"*\" query lists all segments. Available to Admin, Project Manager, Guest, and Linguist roles. Each segment's `tagMetadata` holds the actual content behind its inline tags (e.g. locked/non-translatable sub-text, original embedded markup) rather than plain text — see the `TagMetadata` model for details.",
        "operationId": "listSegmentsV2",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "description": "Translation memory UID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListSegmentsV2RequestDtoV2"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TmSegmentsPageDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Delete all segments",
        "description": "This call is **asynchronous**, use [this API](../async-request/get-asynchronous-request)                     to check the result. This operation is permanent - deleted segments cannot be recovered.",
        "operationId": "clearTransMemoryV2",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/transMemories/{transMemoryUid}/segments/bulkDelete": {
      "post": {
        "tags": [
          "Translation Memory"
        ],
        "summary": "Bulk delete segments",
        "description": "When `lang` is omitted, both the source and all translations are removed for each segment.                     When `lang` is provided, only that translation is removed.                     This operation is permanent - deleted segments cannot be recovered.",
        "operationId": "bulkDeleteSegmentsV2",
        "parameters": [
          {
            "name": "transMemoryUid",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteSegmentsV2DtoV2"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List users",
        "description": "",
        "operationId": "getListOfUsersFiltered",
        "parameters": [
          {
            "name": "firstName",
            "in": "query",
            "description": "Filter by first name prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "lastName",
            "in": "query",
            "description": "Filter by last name prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by first or last name prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "userName",
            "in": "query",
            "description": "Filter by username prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "email",
            "in": "query",
            "description": "Filter by email prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "nameOrEmail",
            "in": "query",
            "description": "Filter by last name, first name or email prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "role",
            "in": "query",
            "description": "Filter by role",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ADMIN",
                  "PROJECT_MANAGER",
                  "LINGUIST",
                  "GUEST",
                  "SUBMITTER",
                  "PORTAL_MEMBER"
                ]
              }
            }
          },
          {
            "name": "includeDeleted",
            "in": "query",
            "description": "When true, deleted users are included in the results",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ID",
                  "LAST_NAME",
                  "FIRST_NAME"
                ]
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ASC",
                  "DESC"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDtoPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/lastLogins": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List last login dates",
        "description": "",
        "operationId": "user-lastLogins",
        "parameters": [
          {
            "name": "userName",
            "in": "query",
            "description": "Filter by username prefix",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 0,
              "maxLength": 255
            }
          },
          {
            "name": "role",
            "in": "query",
            "description": "Filter by role",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ADMIN",
                  "PROJECT_MANAGER",
                  "LINGUIST",
                  "GUEST",
                  "SUBMITTER",
                  "PORTAL_MEMBER"
                ]
              }
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ID",
                  "LAST_LOGIN_DATE"
                ]
              }
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort order",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "ASC",
                  "DESC"
                ]
              }
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 100",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LastLoginPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}": {
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Delete user",
        "description": "",
        "operationId": "deleteUser",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/emailLoginInformation": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Send login information",
        "description": "Rate limited to a configurable number of sends per hour, both per target user and per organization.",
        "operationId": "sendLoginInfo",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user to send login information to",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too Many Requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/jobs": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List jobs assigned to user across all projects",
        "description": "\nReturns jobs assigned to the given user across all projects and all workflow steps -\nunlike GET /api2/v2/projects/{projectUid}/jobs, this endpoint has no default `workflowLevel` restriction.\n\nUse `dueInHours=-1` to filter for jobs due in the past. This does not exclude jobs by status - `DELIVERED`,\n`COMPLETED`, `CANCELLED`, `DECLINED` and `REJECTED` jobs are still matched. Combine with `status` (excluding\n`DELIVERED`, `COMPLETED`, `CANCELLED`, `DECLINED` and `REJECTED`) to match the product's \"overdue\" definition.\n\nUse `dateCreatedFrom`/`dateCreatedTo` to filter jobs by their creation date range. Both are optional and, when\nomitted, no creation date filtering is applied.\n",
        "operationId": "listJobs",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose jobs to list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by job status",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ACCEPTED",
                  "DECLINED",
                  "DELIVERED",
                  "EMAILED",
                  "COMPLETED",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "projectUid",
            "in": "query",
            "description": "Filter by project UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLang",
            "in": "query",
            "description": "Filter by target language locales",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "workflowStepId",
            "in": "query",
            "description": "Filter by workflow step ID",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "dueInHours",
            "in": "query",
            "description": "Filter by due time in hours; use -1 for jobs due in the past. Does not exclude jobs by status - DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED jobs are still matched. Combine with status (excluding DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED) to match the product's \"overdue\" definition.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": -1
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filter by filename",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateCreatedFrom",
            "in": "query",
            "description": "Filter by creation date range from, based on dateCreated (inclusive)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dateCreatedTo",
            "in": "query",
            "description": "Filter by creation date range to, based on dateCreated (inclusive)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssignedJobPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/loginStatistics": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Login statistics",
        "description": "Returns login activity for the specified user. ADMIN users can view any user's activity; non-admin users can only view their own.",
        "operationId": "loginActivity",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose login statistics to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserStatisticsListDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/projects": {
      "get": {
        "tags": [
          "User",
          "Project"
        ],
        "summary": "List assigned projects",
        "description": "List projects in which the user is assigned to at least one job matching the criteria. ADMIN and PROJECT_MANAGER callers receive a richer ProjectAdminReference response; all other roles receive a ProjectLinguistReference response.",
        "operationId": "listAssignedProjects",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose projects to list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by status of the assigned jobs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ACCEPTED",
                  "DECLINED",
                  "DELIVERED",
                  "EMAILED",
                  "COMPLETED",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "targetLang",
            "in": "query",
            "description": "Filter by target language of the assigned jobs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "workflowStepId",
            "in": "query",
            "description": "Filter by workflow step ID",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "dueInHours",
            "in": "query",
            "description": "Filter by due time in hours. Use -1 for jobs due in the past. Does not exclude jobs by status - DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED jobs are still matched. Combine with status (excluding DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED) to match the product's \"overdue\" definition.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": -1
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filter by filename",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "projectName",
            "in": "query",
            "description": "Filter by project name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/targetLangs": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "List assigned target languages",
        "description": "",
        "operationId": "listTargetLangs",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose target languages to list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by job status",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ACCEPTED",
                  "DECLINED",
                  "DELIVERED",
                  "EMAILED",
                  "COMPLETED",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "projectUid",
            "in": "query",
            "description": "Filter by project UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowStepId",
            "in": "query",
            "description": "Filter by workflow step ID",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "dueInHours",
            "in": "query",
            "description": "Filter by due time in hours. Use -1 for jobs due in the past. Does not exclude jobs by status - DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED jobs are still matched. Combine with status (excluding DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED) to match the product's \"overdue\" definition.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": -1
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filter by filename",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TargetLangPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/undelete": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Restore user",
        "description": "Restores a previously deleted user. Requires ADMIN role. The user must belong to the same organization and must not be a bot account.",
        "operationId": "cancelDeletion",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the deleted user to restore",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/updatePassword": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Update password",
        "description": "\nCan be used by the user to update their own password or by ADMIN to update password of user without joined account\n* Password length must be between 8 and 255\n* Password must not be same as the username\n",
        "operationId": "updatePassword",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose password to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserPasswordEditDtoV1"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/users/{userUid}/workflowSteps": {
      "get": {
        "tags": [
          "User",
          "Workflow Step"
        ],
        "summary": "List assigned workflow steps",
        "description": "",
        "operationId": "listWorkflowSteps",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose workflow steps to list",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by job status",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "NEW",
                  "ACCEPTED",
                  "DECLINED",
                  "DELIVERED",
                  "EMAILED",
                  "COMPLETED",
                  "CANCELLED"
                ]
              }
            }
          },
          {
            "name": "projectUid",
            "in": "query",
            "description": "Filter by project UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "targetLang",
            "in": "query",
            "description": "Filter by target language locales",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "dueInHours",
            "in": "query",
            "description": "Filter by due time in hours. Use -1 for jobs due in the past. Does not exclude jobs by status - DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED jobs are still matched. Combine with status (excluding DELIVERED, COMPLETED, CANCELLED, DECLINED and REJECTED) to match the product's \"overdue\" definition.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": -1
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Filter by filename",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowStepReferencePageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/users": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Create user",
        "description": "When sendInvitation=true, an invitation email is sent to the user and the password field is ignored. When sendInvitation=false (default), a welcome email is sent; the password field is honored only for organizations allowed to set an initial password, otherwise a random password is generated.",
        "operationId": "createUserV3",
        "parameters": [
          {
            "name": "sendInvitation",
            "in": "query",
            "description": "When true, sends an invitation email; password field is ignored",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDetailsDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/users/{userUid}": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Get user",
        "description": "",
        "operationId": "getUserV3",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user to retrieve",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDetailsDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Edit user",
        "description": "",
        "operationId": "updateUserV3",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user to edit",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AbstractUserEditDtoV3"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDetailsDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v3/users/{userUid}/disableTwoFactorAuth": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Disable two-factor authentication",
        "description": "",
        "operationId": "disableTwoFactorAuthV3",
        "parameters": [
          {
            "name": "userUid",
            "in": "path",
            "description": "UID of the user whose two-factor authentication to disable",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDetailsDtoV3"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/userProfile": {
      "get": {
        "tags": [
          "User Profile"
        ],
        "summary": "Get my profile",
        "description": "\nReturns the profile of the currently authenticated user, including their notification/display time zone.\nThis time zone is display/notification only - it does not affect how dateDue or other API dates are\nparsed or rendered, which never depends on timezone.",
        "operationId": "getUserProfile",
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserProfileDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/vendors": {
      "get": {
        "tags": [
          "Vendor"
        ],
        "summary": "List vendors",
        "description": "Returns only approved vendors.",
        "operationId": "listVendors",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by vendor name",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Vendor"
        ],
        "summary": "Create vendor",
        "description": "",
        "operationId": "createVendor",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateVendorDtoV1"
              }
            }
          },
          "description": "Vendor creation request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Vendor"
        ],
        "summary": "Delete vendors (batch)",
        "description": "",
        "operationId": "deleteVendors",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteVendorsDtoV1"
              }
            }
          },
          "description": "Batch vendor deletion request",
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/vendors/{vendorUid}": {
      "get": {
        "tags": [
          "Vendor"
        ],
        "summary": "Get vendor",
        "description": "",
        "operationId": "getVendor",
        "parameters": [
          {
            "name": "vendorUid",
            "in": "path",
            "description": "Unique identifier of the vendor",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Vendor"
        ],
        "summary": "Update vendor",
        "description": "Full replace of the net rate scheme, price list, locales, and client/domain/sub-domain/workflow step associations. Fields omitted from the request body clear the existing association.",
        "operationId": "updateVendor",
        "parameters": [
          {
            "name": "vendorUid",
            "in": "path",
            "description": "Unique identifier of the vendor",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateVendorDtoV1"
              }
            }
          },
          "description": "Vendor update request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VendorDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/webhooksCalls": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "summary": "Lists webhook calls",
        "description": "",
        "operationId": "getWebhookCallsList",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "events",
            "in": "query",
            "description": "List of Webhook events to filter by",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "JOB_STATUS_CHANGED",
                  "JOB_CREATED",
                  "JOB_DELETED",
                  "JOB_UNSHARED",
                  "JOB_ASSIGNED",
                  "JOB_DUE_DATE_CHANGED",
                  "JOB_UPDATED",
                  "JOB_TARGET_UPDATED",
                  "JOB_EXPORTED",
                  "JOB_UNEXPORTED",
                  "JOB_AUTO_LQA_FINISHED",
                  "JOB_METADATA_UPDATED",
                  "JOB_CUSTOM_FIELDS_UPDATED",
                  "PROJECT_CREATED",
                  "PROJECT_DELETED",
                  "PROJECT_UNSHARED",
                  "PROJECT_STATUS_CHANGED",
                  "PROJECT_DUE_DATE_CHANGED",
                  "SHARED_PROJECT_ASSIGNED",
                  "PROJECT_METADATA_UPDATED",
                  "PRE_TRANSLATION_FINISHED",
                  "ANALYSIS_CREATED",
                  "CONTINUOUS_JOB_UPDATED",
                  "PROJECT_TEMPLATE_CREATED",
                  "PROJECT_TEMPLATE_UPDATED",
                  "PROJECT_TEMPLATE_DELETED",
                  "RAW_MT_CONVERTER_IMPORT_FINISHED",
                  "RAW_MT_PRE_TRANSLATION_FINISHED",
                  "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                  "TERM_BASE_TERM_CREATED",
                  "TERM_BASE_TERM_UPDATED",
                  "TERM_BASE_TERM_DELETED",
                  "TERM_BASE_CONCEPT_CREATED",
                  "TERM_BASE_CONCEPT_UPDATED",
                  "TERM_BASE_CONCEPT_DELETED",
                  "TERM_BASE_IMPORTED"
                ]
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status of Webhook calls to filter by",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "SUCCESS",
                "FAIL"
              ]
            }
          },
          {
            "name": "webhookUid",
            "in": "query",
            "description": "UID of Webhook to filter by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "parentUid",
            "in": "query",
            "description": "UID of parent webhook call to filter by",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "webhookEventUid",
            "in": "query",
            "description": "UID of Webhook event to filter by",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PageDtoWebhookCallDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/webhooksCalls/replay": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "summary": "Replay webhook calls",
        "description": "Replays given list of Webhook Calls in specified order in the request",
        "operationId": "replayWebhookCalls",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplayRequestDtoV1"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/webhooksCalls/replay/latest": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "summary": "Replay last webhook calls",
        "description": "Replays specified number of last Webhook calls from oldest to the newest one",
        "operationId": "replayLast",
        "parameters": [
          {
            "name": "numberOfCalls",
            "in": "query",
            "description": "Number of calls to be replayed",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 5
            }
          },
          {
            "name": "events",
            "in": "query",
            "description": "List of Webhook events to filter by",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "JOB_STATUS_CHANGED",
                  "JOB_CREATED",
                  "JOB_DELETED",
                  "JOB_UNSHARED",
                  "JOB_ASSIGNED",
                  "JOB_DUE_DATE_CHANGED",
                  "JOB_UPDATED",
                  "JOB_TARGET_UPDATED",
                  "JOB_EXPORTED",
                  "JOB_UNEXPORTED",
                  "JOB_AUTO_LQA_FINISHED",
                  "JOB_METADATA_UPDATED",
                  "JOB_CUSTOM_FIELDS_UPDATED",
                  "PROJECT_CREATED",
                  "PROJECT_DELETED",
                  "PROJECT_UNSHARED",
                  "PROJECT_STATUS_CHANGED",
                  "PROJECT_DUE_DATE_CHANGED",
                  "SHARED_PROJECT_ASSIGNED",
                  "PROJECT_METADATA_UPDATED",
                  "PRE_TRANSLATION_FINISHED",
                  "ANALYSIS_CREATED",
                  "CONTINUOUS_JOB_UPDATED",
                  "PROJECT_TEMPLATE_CREATED",
                  "PROJECT_TEMPLATE_UPDATED",
                  "PROJECT_TEMPLATE_DELETED",
                  "RAW_MT_CONVERTER_IMPORT_FINISHED",
                  "RAW_MT_PRE_TRANSLATION_FINISHED",
                  "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                  "TERM_BASE_TERM_CREATED",
                  "TERM_BASE_TERM_UPDATED",
                  "TERM_BASE_TERM_DELETED",
                  "TERM_BASE_CONCEPT_CREATED",
                  "TERM_BASE_CONCEPT_UPDATED",
                  "TERM_BASE_CONCEPT_DELETED",
                  "TERM_BASE_IMPORTED"
                ]
              }
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Status of Webhook calls to filter by",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "SUCCESS",
                "FAIL"
              ]
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/webhooks": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "summary": "Lists webhooks",
        "description": "",
        "operationId": "getWebHookListV2",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by webhook name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Filter by enabled/disabled status",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ENABLED",
                "DISABLED"
              ]
            }
          },
          {
            "name": "url",
            "in": "query",
            "description": "Filter by webhook URL",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "events",
            "in": "query",
            "description": "Filter by webhook events, any match is included",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "JOB_STATUS_CHANGED",
                  "JOB_CREATED",
                  "JOB_DELETED",
                  "JOB_UNSHARED",
                  "JOB_ASSIGNED",
                  "JOB_DUE_DATE_CHANGED",
                  "JOB_UPDATED",
                  "JOB_TARGET_UPDATED",
                  "JOB_EXPORTED",
                  "JOB_UNEXPORTED",
                  "JOB_AUTO_LQA_FINISHED",
                  "JOB_METADATA_UPDATED",
                  "JOB_CUSTOM_FIELDS_UPDATED",
                  "PROJECT_CREATED",
                  "PROJECT_DELETED",
                  "PROJECT_UNSHARED",
                  "PROJECT_STATUS_CHANGED",
                  "PROJECT_DUE_DATE_CHANGED",
                  "SHARED_PROJECT_ASSIGNED",
                  "PROJECT_METADATA_UPDATED",
                  "PRE_TRANSLATION_FINISHED",
                  "ANALYSIS_CREATED",
                  "CONTINUOUS_JOB_UPDATED",
                  "PROJECT_TEMPLATE_CREATED",
                  "PROJECT_TEMPLATE_UPDATED",
                  "PROJECT_TEMPLATE_DELETED",
                  "RAW_MT_CONVERTER_IMPORT_FINISHED",
                  "RAW_MT_PRE_TRANSLATION_FINISHED",
                  "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                  "TERM_BASE_TERM_CREATED",
                  "TERM_BASE_TERM_UPDATED",
                  "TERM_BASE_TERM_DELETED",
                  "TERM_BASE_CONCEPT_CREATED",
                  "TERM_BASE_CONCEPT_UPDATED",
                  "TERM_BASE_CONCEPT_DELETED",
                  "TERM_BASE_IMPORTED"
                ]
              }
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by webhook creators UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "modifiedBy",
            "in": "query",
            "description": "Filter by webhook updaters UIDs",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "sortField",
            "in": "query",
            "description": "Sort by this field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "NAME",
                "STATUS",
                "CREATED",
                "LAST_MODIFIED"
              ]
            }
          },
          {
            "name": "sortTrend",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookPageDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Webhook"
        ],
        "summary": "Create webhook",
        "description": "",
        "operationId": "createWebHookV2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebHookDtoV2"
              }
            }
          },
          "description": "Webhook creation request",
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "InvalidArguments"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/webhooks/previews": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "summary": "Get webhook body previews",
        "description": "",
        "operationId": "getWebhookPreviews",
        "parameters": [
          {
            "name": "events",
            "in": "query",
            "description": "Filter by webhook events",
            "required": false,
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "JOB_STATUS_CHANGED",
                  "JOB_CREATED",
                  "JOB_DELETED",
                  "JOB_UNSHARED",
                  "JOB_ASSIGNED",
                  "JOB_DUE_DATE_CHANGED",
                  "JOB_UPDATED",
                  "JOB_TARGET_UPDATED",
                  "JOB_EXPORTED",
                  "JOB_UNEXPORTED",
                  "JOB_AUTO_LQA_FINISHED",
                  "JOB_METADATA_UPDATED",
                  "JOB_CUSTOM_FIELDS_UPDATED",
                  "PROJECT_CREATED",
                  "PROJECT_DELETED",
                  "PROJECT_UNSHARED",
                  "PROJECT_STATUS_CHANGED",
                  "PROJECT_DUE_DATE_CHANGED",
                  "SHARED_PROJECT_ASSIGNED",
                  "PROJECT_METADATA_UPDATED",
                  "PRE_TRANSLATION_FINISHED",
                  "ANALYSIS_CREATED",
                  "CONTINUOUS_JOB_UPDATED",
                  "PROJECT_TEMPLATE_CREATED",
                  "PROJECT_TEMPLATE_UPDATED",
                  "PROJECT_TEMPLATE_DELETED",
                  "RAW_MT_CONVERTER_IMPORT_FINISHED",
                  "RAW_MT_PRE_TRANSLATION_FINISHED",
                  "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                  "TERM_BASE_TERM_CREATED",
                  "TERM_BASE_TERM_UPDATED",
                  "TERM_BASE_TERM_DELETED",
                  "TERM_BASE_CONCEPT_CREATED",
                  "TERM_BASE_CONCEPT_UPDATED",
                  "TERM_BASE_CONCEPT_DELETED",
                  "TERM_BASE_IMPORTED"
                ]
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookPreviewsDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/webhooks/{webHookUid}": {
      "get": {
        "tags": [
          "Webhook"
        ],
        "summary": "Get webhook",
        "description": "",
        "operationId": "getWebHookV2",
        "parameters": [
          {
            "name": "webHookUid",
            "in": "path",
            "description": "Unique identifier of the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Webhook"
        ],
        "summary": "Edit webhook",
        "description": "",
        "operationId": "updateWebHookV2",
        "parameters": [
          {
            "name": "webHookUid",
            "in": "path",
            "description": "Unique identifier of the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWebHookDtoV2"
              }
            }
          },
          "description": "Webhook edit request",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebHookDtoV2"
                }
              }
            }
          },
          "400": {
            "description": "InvalidArguments"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Webhook"
        ],
        "summary": "Delete webhook",
        "description": "",
        "operationId": "deleteWebHookV2",
        "parameters": [
          {
            "name": "webHookUid",
            "in": "path",
            "description": "Unique identifier of the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/webhooks/{webhookUid}/test": {
      "post": {
        "tags": [
          "Webhook"
        ],
        "summary": "Send test webhook",
        "description": "Returns 400 if the webhook does not include the specified event.",
        "operationId": "sendTestWebhook",
        "parameters": [
          {
            "name": "webhookUid",
            "in": "path",
            "description": "Unique identifier of the webhook",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "event",
            "in": "query",
            "description": "Event of test webhook",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "JOB_STATUS_CHANGED",
                "JOB_CREATED",
                "JOB_DELETED",
                "JOB_UNSHARED",
                "JOB_ASSIGNED",
                "JOB_DUE_DATE_CHANGED",
                "JOB_UPDATED",
                "JOB_TARGET_UPDATED",
                "JOB_EXPORTED",
                "JOB_UNEXPORTED",
                "JOB_AUTO_LQA_FINISHED",
                "JOB_METADATA_UPDATED",
                "JOB_CUSTOM_FIELDS_UPDATED",
                "PROJECT_CREATED",
                "PROJECT_DELETED",
                "PROJECT_UNSHARED",
                "PROJECT_STATUS_CHANGED",
                "PROJECT_DUE_DATE_CHANGED",
                "SHARED_PROJECT_ASSIGNED",
                "PROJECT_METADATA_UPDATED",
                "PRE_TRANSLATION_FINISHED",
                "ANALYSIS_CREATED",
                "CONTINUOUS_JOB_UPDATED",
                "PROJECT_TEMPLATE_CREATED",
                "PROJECT_TEMPLATE_UPDATED",
                "PROJECT_TEMPLATE_DELETED",
                "RAW_MT_CONVERTER_IMPORT_FINISHED",
                "RAW_MT_PRE_TRANSLATION_FINISHED",
                "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                "TERM_BASE_TERM_CREATED",
                "TERM_BASE_TERM_UPDATED",
                "TERM_BASE_TERM_DELETED",
                "TERM_BASE_CONCEPT_CREATED",
                "TERM_BASE_CONCEPT_UPDATED",
                "TERM_BASE_CONCEPT_DELETED",
                "TERM_BASE_IMPORTED"
              ]
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Test webhook sent"
          },
          "400": {
            "description": "BAD_REQUEST"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "AuthAccessDenied"
          },
          "404": {
            "description": "ResourceNotFound"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v2/jobs/workflowChanges": {
      "post": {
        "tags": [
          "Workflow changes"
        ],
        "summary": "Download workflow changes report",
        "description": "Returns an HTML report of translation differences between workflow steps for the specified jobs.\nAll jobs must belong to the same project. The project must have at least two workflow steps configured.\nRequired role: Administrator or Project Manager.",
        "operationId": "downloadWorkflowChanges",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowChangesDtoV2"
              }
            }
          },
          "description": "List of 1–100 job UIDs to include in the report (all must belong to the same project)",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/workflowSteps": {
      "get": {
        "tags": [
          "Workflow Step"
        ],
        "summary": "List workflow steps",
        "description": "Accessible to ADMIN, PROJECT_MANAGER, GUEST, and LINGUIST roles. Returns 403 if the organization plan does not support workflow steps.",
        "operationId": "listWFSteps",
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 50, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ID",
                "NAME",
                "ORDER",
                "ABBR"
              ],
              "default": "ID"
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "Filter by name of the workflow step",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "abbr",
            "in": "query",
            "description": "Filter by abbreviation of the workflow step",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowStepPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "post": {
        "tags": [
          "Workflow Step"
        ],
        "summary": "Create workflow step",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the setup-server access right. Abbreviation must be unique within the organization. When order is omitted, the step is appended to the end of the organization's workflow step list (highest existing order + 10, or 0 if none exist). On success, the new step is automatically added to all existing price lists and discount schemes. Returns 403 if the organization plan does not support workflow steps or if LQA is not enabled for the organization when lqaEnabled is true.",
        "operationId": "createWFStep",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateWorkflowStepDtoV1"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowStepDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/workflowSteps/{workflowStepUid}": {
      "get": {
        "tags": [
          "Workflow Step"
        ],
        "summary": "Get workflow step",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the setup-server access right. Returns 403 if the organization plan does not support workflow steps.",
        "operationId": "getWFStep",
        "parameters": [
          {
            "name": "workflowStepUid",
            "in": "path",
            "description": "UID of the workflow step",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowStepDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "put": {
        "tags": [
          "Workflow Step"
        ],
        "summary": "Edit workflow step",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the setup-server access right. All fields are optional; omitted or null fields retain their existing values. Abbreviation must be unique within the organization. Returns 403 if the organization plan does not support workflow steps or if LQA is not enabled for the organization when lqaEnabled is true.",
        "operationId": "editWFStep",
        "parameters": [
          {
            "name": "workflowStepUid",
            "in": "path",
            "description": "UID of the workflow step",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EditWorkflowStepDtoV1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowStepDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      },
      "delete": {
        "tags": [
          "Workflow Step"
        ],
        "summary": "Delete workflow step",
        "description": "Requires ADMIN or PROJECT_MANAGER role with the setup-server access right. Soft-deletes the step and removes all associated price list entries. Returns 403 if the organization plan does not support workflow steps.",
        "operationId": "deleteWFStep",
        "parameters": [
          {
            "name": "workflowStepUid",
            "in": "path",
            "description": "UID of the workflow step",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    },
    "/api2/v1/xmlAssistantProfiles": {
      "get": {
        "tags": [
          "XML Assistant"
        ],
        "summary": "Get XML assistant profiles for organization",
        "description": "",
        "operationId": "listXmlAssistantProfiles",
        "parameters": [
          {
            "name": "name",
            "in": "query",
            "description": "Filter by profile name",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "description",
            "in": "query",
            "description": "Filter by profile description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "Filter by creator user UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "Filter by last updater user UID",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdAt",
            "in": "query",
            "description": "Filter by creation date (ISO 8601 format)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatedAt",
            "in": "query",
            "description": "Filter by last update date (ISO 8601 format)",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "Full-text search across name and description",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "Page number, starting with 0, default 0",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "default": 0
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Page size, accepts values between 1 and 1000, default 50",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 1000,
              "default": 50
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sort field",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "name",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy"
              ]
            }
          },
          {
            "name": "order",
            "in": "query",
            "description": "Sort direction",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "asc",
                "desc"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/XmlAssistantProfileListPageDtoV1"
                }
              }
            }
          },
          "400": {
            "description": "Bad request"
          },
          "401": {
            "description": "Not authorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Resource not found"
          },
          "405": {
            "description": "Method not allowed"
          },
          "408": {
            "description": "Timeout"
          },
          "410": {
            "description": "Gone"
          },
          "415": {
            "description": "Unsupported media type"
          },
          "429": {
            "description": "Too many requests"
          },
          "500": {
            "description": "Internal server error"
          },
          "501": {
            "description": "Not implemented"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://cloud.memsource.com/web"
    }
  ],
  "components": {
    "requestBodies": {
      "InputStream": {
        "content": {
          "application/octet-stream": {
            "schema": {
              "$ref": "#/components/schemas/InputStream"
            }
          }
        },
        "description": "streamed file",
        "required": true
      },
      "ClientEditDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ClientEditDtoV1"
            }
          }
        },
        "required": true
      },
      "AddCommentDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AddCommentDtoV1"
            }
          }
        },
        "description": "Add comment request body",
        "required": true
      },
      "ProjectTemplateReferenceFilesRequestDtoProjectTemplateV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProjectTemplateReferenceFilesRequestDtoProjectTemplateV1"
            }
          }
        }
      },
      "CreateCustomFieldInstancesDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateCustomFieldInstancesDtoV1"
            }
          }
        },
        "description": "Custom field instances to create",
        "required": true
      },
      "CreateEditDiscountSchemeDtoV2": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateEditDiscountSchemeDtoV2"
            }
          }
        }
      },
      "FileImportSettingsCreateDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/FileImportSettingsCreateDtoV1"
            }
          }
        },
        "description": "Import settings to apply",
        "required": true
      },
      "InputStream2": {
        "content": {
          "application/octet-stream": {
            "schema": {
              "$ref": "#/components/schemas/InputStream"
            }
          }
        }
      },
      "EditQASettingsDtoV2": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EditQASettingsDtoV2"
            }
          }
        },
        "description": "QA settings",
        "required": true
      },
      "ProjectReferenceFilesRequestDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProjectReferenceFilesRequestDtoV1"
            }
          }
        }
      },
      "ProjectStatusAutomationSettingsDtoProjectTemplateV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProjectStatusAutomationSettingsDtoProjectTemplateV1"
            }
          }
        }
      },
      "SubDomainEditDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SubDomainEditDtoV1"
            }
          }
        },
        "description": "Subdomain data",
        "required": true
      },
      "CreateAnalyseListAsyncDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateAnalyseListAsyncDtoV1"
            }
          }
        },
        "description": "Analyses to create",
        "required": true
      },
      "CostCenterEditDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CostCenterEditDtoV1"
            }
          }
        },
        "required": true
      },
      "BusinessUnitEditDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BusinessUnitEditDtoV1"
            }
          }
        },
        "required": true
      },
      "ConnectorConfigurationDto": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConnectorConfigurationDto"
            }
          }
        }
      },
      "DomainEditDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DomainEditDtoV1"
            }
          }
        }
      },
      "AssessmentRequestDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AssessmentRequestDtoV1"
            }
          }
        }
      },
      "LinkProjectToContentGroupDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LinkProjectToContentGroupDtoV1"
            }
          }
        },
        "description": "Content group to link",
        "required": true
      },
      "SpellCheckRequestDtoSpellCheckV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SpellCheckRequestDtoSpellCheckV1"
            }
          }
        }
      },
      "ConceptEditDtoV1": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ConceptEditDtoV1"
            }
          }
        }
      },
      "AddCommentDtoV12": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AddCommentDtoV1"
            }
          }
        },
        "description": "Edit comment request body",
        "required": true
      },
      "UpdateIgnoredWarningsDtoV2": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoV2"
            }
          }
        }
      }
    },
    "securitySchemes": {
      "ApiToken": {
        "description": "Get a token from `auth/login` [endpoint](#operation/login) and then pass it in the `Authorization` HTTP header in every subsequent API call. For more information visit our [help center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#token-0-0).",
        "type": "apiKey",
        "name": "Authorization",
        "in": "header"
      },
      "OAuth2": {
        "description": "A standard OAuth 2.0 authorization code flow. For more information visit our [help center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#oauth-2-0-0-1).",
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://cloud.memsource.com/web/oauth/authorize",
            "tokenUrl": "https://cloud.memsource.com/web/oauth/token",
            "scopes": {}
          }
        }
      },
      "none": {
        "description": "No authentication required. This is used for public endpoints.",
        "type": "apiKey",
        "name": "None",
        "in": "header"
      }
    },
    "schemas": {
      "ADMIN": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "ADMIN_EDIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserEditDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "sourceLocales": {
                "type": "array",
                "description": "Source language locales the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned source locales, e.g. leftover assignments from when the user had the LINGUIST role",
                "items": {
                  "type": "string"
                }
              },
              "targetLocales": {
                "type": "array",
                "description": "Target language locales the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned target locales, e.g. leftover assignments from when the user had the LINGUIST role",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "ADMIN_RESPONSE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserDetailsDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "AEM_PLUGIN": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host"
            ],
            "properties": {
              "basicAuthPassword": {
                "type": "string"
              },
              "basicAuthUserName": {
                "type": "string"
              },
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string"
              },
              "urlRewriteFind": {
                "type": "string"
              },
              "urlRewriteReplace": {
                "type": "string"
              }
            }
          }
        ]
      },
      "AMAZON_S3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "properties": {
              "amazonIamRole": {
                "type": "string"
              },
              "apiKey": {
                "type": "string"
              },
              "apiSecret": {
                "type": "string"
              }
            }
          }
        ]
      },
      "APCMonitoredFileDto": {
        "type": "object",
        "properties": {
          "directory": {
            "type": "boolean"
          },
          "encodedName": {
            "type": "string"
          },
          "lastImportFailed": {
            "type": "boolean"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          },
          "lastSuccessfulImport": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueIdentifier": {
            "type": "string"
          }
        }
      },
      "APCMonitoredFilesResponse": {
        "type": "object",
        "properties": {
          "currentFolder": {
            "type": "string"
          },
          "encodedCurrentFolder": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/APCMonitoredFileDto"
            }
          },
          "rootFolder": {
            "type": "boolean"
          }
        }
      },
      "AZURE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "connectionString"
            ],
            "properties": {
              "connectionString": {
                "type": "string",
                "description": "Microsoft azure connection string"
              }
            }
          }
        ]
      },
      "AbsoluteTranslationLengthWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "limit": {
                "type": "string"
              }
            }
          }
        ]
      },
      "AbstractAnalyseSettingsDtoV1": {
        "type": "object",
        "required": [
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "allowAutomaticPostAnalysis": {
            "type": "boolean",
            "description": "If automatic post analysis should be created after update source. Default: false"
          },
          "analyzeByLanguage": {
            "type": "boolean",
            "description": "When true, creates one analysis per target language instead of a single combined analysis. Default: false"
          },
          "analyzeByProvider": {
            "type": "boolean",
            "description": "When true, creates one analysis per assigned provider instead of a single combined analysis. Default: false"
          },
          "countSourceUnits": {
            "type": "boolean",
            "description": "Whether the analysis counts source or target word/character units. When true, counts are based on the source language content; when false, counts are based on the target language content. Default: false"
          },
          "includeConfirmedSegments": {
            "type": "boolean",
            "description": "When true, confirmed (translated) segments are included in the counts. Default: false"
          },
          "includeLockedSegments": {
            "type": "boolean",
            "description": "When true, locked segments are included in the counts. Default: false"
          },
          "includeNotConfirmedSegments": {
            "type": "boolean",
            "description": "When true, not confirmed segments are included in the counts. Default: false"
          },
          "includeNumbers": {
            "type": "boolean",
            "description": "When true, number-only segments are included in the counts. Default: false"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the counts. Default: false"
          },
          "namingPattern": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "description": "Response differs based on analyse type: PreAnalyse (source segments analysis), PostAnalyse (machine translation post-editing analysis), PreAnalyseTarget (target segments analysis) or Compare (compares word/character counts across workflow levels)",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare"
            ]
          }
        },
        "description": "Base analyseSettingsDto"
      },
      "AbstractMachineTranslateSettingsDtoV1": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "default_": {
            "type": "boolean",
            "description": "Make default setting. Default: false"
          },
          "name": {
            "type": "string",
            "description": "Display name of the MT engine",
            "minLength": 0,
            "maxLength": 255
          },
          "type": {
            "type": "string",
            "description": "Type of the setting with predefined Enumeration",
            "enum": [
              "Acolad",
              "Amazon",
              "AnZin",
              "Apertium",
              "AutodeskMtApi",
              "AutodeskNmt",
              "Baidu",
              "Booking",
              "CLASSIII",
              "ClearMT",
              "ClosedNmt",
              "Cotoha",
              "CrossLang",
              "CustomConnector",
              "DeepL",
              "FairTrade",
              "Geofluent",
              "GlobaleseNmt",
              "GlobaleseCloud",
              "Globalese",
              "GoogleAutoMl",
              "GoogleTranslate",
              "GoogleV3Translate",
              "HumanScience",
              "Hunyuan",
              "Jukkou",
              "KantanMt",
              "Kodensha",
              "LengooHalos",
              "MicrosoftCustom",
              "MicrosoftHub",
              "MicrosoftTranslate",
              "Mirai",
              "ModernMt",
              "Moravia3",
              "MoraviaMt",
              "MoraviaTagsMt",
              "Nict",
              "Npat",
              "OmniscienTechnologies",
              "Pangea",
              "PartnerConnector",
              "PbmPartnerConnector",
              "PrompsitMt",
              "Prompt",
              "Robobrain",
              "RobobrainCustom",
              "SalesforceMt",
              "SdlBeGlobal",
              "SdlLanguageCloud",
              "Skrivanek",
              "SundaMt",
              "SystranPnmt",
              "Systran",
              "T3mt",
              "T4ooRealtime",
              "Tauyou",
              "TauyouRealTime",
              "Tencent",
              "TildeMt",
              "Toshiba",
              "UbiqusNmt",
              "Yandex",
              "Yappn"
            ]
          }
        }
      },
      "AbstractProjectDtoPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AbstractProjectDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AbstractProjectDtoV1": {
        "type": "object",
        "required": [
          "userRole"
        ],
        "discriminator": {
          "propertyName": "userRole"
        },
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the project was created, in UTC. Rendered as `yyyy-MM-dd'T'HH:mm:ssZ` with a numeric `+0000` offset (not `Z`) and no milliseconds, e.g. `2026-08-29T15:50:00+0000`."
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Project due date, in UTC. Rendered as `yyyy-MM-dd'T'HH:mm:ssZ` with a numeric `+0000` offset (not `Z`) and no milliseconds, e.g. `2026-08-29T15:50:00+0000`. Null when the organization hides progress and status from non-linguist, non-bot callers."
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "internalId": {
            "type": "integer",
            "format": "int32",
            "description": "Organization-scoped sequential number shown in the UI project list"
          },
          "mtSettingsPerLanguageList": {
            "type": "array",
            "description": "Machine translation settings per target language",
            "items": {
              "$ref": "#/components/schemas/MTSettingsPerLanguageReferenceV1"
            }
          },
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "references": {
            "type": "array",
            "description": "Reference files attached to the project",
            "items": {
              "$ref": "#/components/schemas/ReferenceFileReferenceV1"
            }
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "userRole": {
            "type": "string",
            "description": "Response differs based on user's role",
            "readOnly": true
          }
        },
        "description": "Base projectDto"
      },
      "AbstractProjectDtoV2": {
        "type": "object",
        "required": [
          "userRole"
        ],
        "discriminator": {
          "propertyName": "userRole"
        },
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the project was created"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "internalId": {
            "type": "integer",
            "format": "int32",
            "description": "Sequential numeric identifier scoped to the organization (first project in the org is 1)"
          },
          "mtSettingsPerLanguageList": {
            "type": "array",
            "description": "Machine translation settings per target language",
            "items": {
              "$ref": "#/components/schemas/MTSettingsPerLanguageReferenceV1"
            }
          },
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "references": {
            "type": "array",
            "description": "Reference files attached to the project",
            "items": {
              "$ref": "#/components/schemas/ReferenceFileReferenceV1"
            }
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code"
          },
          "status": {
            "type": "string",
            "description": "Project status; one of NEW, ASSIGNED, COMPLETED, ACCEPTED_BY_VENDOR, DECLINED_BY_VENDOR, COMPLETED_BY_VENDOR, CANCELLED. Null when the organization hides progress and status from non-linguist, non-bot callers.",
            "enum": [
              "NEW",
              "ASSIGNED",
              "COMPLETED",
              "ACCEPTED_BY_VENDOR",
              "DECLINED_BY_VENDOR",
              "COMPLETED_BY_VENDOR",
              "CANCELLED"
            ]
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "userRole": {
            "type": "string",
            "description": "Response differs based on user's role",
            "readOnly": true
          }
        },
        "description": "Base projectDto"
      },
      "AbstractUserCreateDtoV3": {
        "type": "object",
        "required": [
          "email",
          "firstName",
          "lastName",
          "role",
          "timezone",
          "userName"
        ],
        "discriminator": {
          "propertyName": "role"
        },
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When false, the user account is created but immediately deactivated"
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "minLength": 0,
            "maxLength": 255
          },
          "firstName": {
            "type": "string",
            "description": "First name",
            "minLength": 0,
            "maxLength": 255
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Internal note about the user; max 4096 characters",
            "minLength": 0,
            "maxLength": 4096
          },
          "password": {
            "type": "string",
            "description": "Initial password; ignored when sendInvitation=true. When sendInvitation=false, honored only for organizations allowed to set an initial password, otherwise a random password is generated.",
            "minLength": 0,
            "maxLength": 255
          },
          "receiveNewsletter": {
            "type": "boolean",
            "description": "When true, the user receives newsletter emails"
          },
          "role": {
            "type": "string",
            "description": "User role",
            "enum": [
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER"
            ]
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone identifier, e.g. Europe/Berlin",
            "minLength": 0,
            "maxLength": 255
          },
          "userName": {
            "type": "string",
            "description": "Username (login name)",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "AbstractUserEditDtoV3": {
        "type": "object",
        "required": [
          "email",
          "firstName",
          "lastName",
          "role",
          "timezone",
          "userName"
        ],
        "discriminator": {
          "propertyName": "role"
        },
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When false, the user account is deactivated and cannot log in"
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "minLength": 0,
            "maxLength": 255
          },
          "firstName": {
            "type": "string",
            "description": "First name",
            "minLength": 0,
            "maxLength": 255
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Internal note about the user; max 4096 characters",
            "minLength": 0,
            "maxLength": 4096
          },
          "receiveNewsletter": {
            "type": "boolean",
            "description": "When true, the user receives newsletter emails"
          },
          "role": {
            "type": "string",
            "description": "User role",
            "enum": [
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER"
            ]
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone identifier, e.g. Europe/Berlin",
            "minLength": 0,
            "maxLength": 255
          },
          "userName": {
            "type": "string",
            "description": "Username (login name)",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "AccuracyWeightsDto": {
        "type": "object",
        "properties": {
          "accuracy": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "addition": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "improperTmMatch": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "mistranslation": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "omission": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "overTranslation": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "underTranslation": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "untranslated": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "Acolad": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "collectionId",
              "url"
            ],
            "properties": {
              "collectionId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AddCommentDtoV1": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "type": "string",
            "description": "\nText content of the comment. To trigger a mention notification, embed a tag using the exact wire format <@user:UID> for a specific user, <@group:GROUPNAME> for a predefined group (e.g. <@group:owners>, <@group:providers>), or <@group:WORKFLOW_STEP_UID> for a workflow step group. UID is the mentionable user's uid; GROUPNAME is the lowercase groupName field (not groupType) returned by the \"List mentionable users\" endpoint for non-workflow-step groups; WORKFLOW_STEP_UID is that same endpoint's groupReference.uid, since a workflow step's groupName is a human-readable display value and will not match the tag. Only uids/groupNames returned by that endpoint for this comment's job part are valid mention targets — any other value silently fails to produce a mention. Plain human-readable text such as \"@owners\" or \"@username\" is stored as inert text and does not resolve to a mention.\n"
          }
        }
      },
      "AddLqaCommentResultDtoV2": {
        "type": "object",
        "properties": {
          "conversation": {
            "$ref": "#/components/schemas/LQAConversationDtoV1"
          },
          "id": {
            "type": "string",
            "description": "ID of created comment"
          }
        }
      },
      "AddPlainCommentResultDtoV2": {
        "type": "object",
        "properties": {
          "conversation": {
            "$ref": "#/components/schemas/PlainConversationDtoV1"
          },
          "id": {
            "type": "string",
            "description": "ID of created comment"
          }
        }
      },
      "AddWorkflowStepsDtoV1": {
        "type": "object",
        "properties": {
          "workflowSteps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            },
            "maxItems": 2147483647,
            "minItems": 1
          }
        }
      },
      "AdditionalWorkflowStepDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the additional workflow step"
          },
          "name": {
            "type": "string",
            "description": "Name of the additional workflow step"
          }
        }
      },
      "AdditionalWorkflowStepPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AdditionalWorkflowStepDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AdditionalWorkflowStepRequestDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the additional workflow step; unique within the organization",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "Amazon": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "region"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "region": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AmazonSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "accessKey",
              "secretKey"
            ],
            "properties": {
              "accessKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secretKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AnZin": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "engine",
              "username"
            ],
            "properties": {
              "engine": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "plaintextSign": {
                "type": "boolean",
                "description": "Default: false"
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AnZinSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "secret"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secret": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AnalyseDtoV1": {
        "type": "object",
        "properties": {
          "analyseLanguageParts": {
            "type": "array",
            "description": "Per-language-pair analysis results",
            "items": {
              "$ref": "#/components/schemas/AnalyseLanguagePartDtoV1"
            }
          },
          "assignedLinguist": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the analysis was created"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Analysis name"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "type": {
            "type": "string",
            "description": "Analysis type. Newly created analyses are PreAnalyse, PostAnalyse or Compare; responses may also return internally created types: PreAnalyseTarget, PreAnalyseProvider, ContinuousPreAnalyse or ContinuousPostAnalyse",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare",
              "PreAnalyseProvider",
              "ContinuousPostAnalyse",
              "ContinuousPreAnalyse"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "AnalyseJobDtoV1": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoDataDtoV1"
          },
          "discountedData": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoDataDtoV1"
          },
          "filename": {
            "type": "string",
            "description": "Job file name"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the job used in API paths"
          }
        }
      },
      "AnalyseJobPartPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyseJobDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AnalyseJobReferenceV1": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "description": "Job file name"
          },
          "innerId": {
            "type": "string",
            "description": "Sequential number of the job within the project"
          },
          "jobUid": {
            "type": "string",
            "description": "Unique identifier of the source job"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the analysed job used in API paths"
          }
        }
      },
      "AnalyseLanguagePartDtoCountsDtoV1": {
        "type": "object",
        "properties": {
          "characters": {
            "type": "number",
            "format": "double"
          },
          "editingTime": {
            "type": "number",
            "format": "double"
          },
          "normalizedPages": {
            "type": "number",
            "format": "double"
          },
          "percent": {
            "type": "number",
            "format": "double"
          },
          "segments": {
            "type": "number",
            "format": "double"
          },
          "words": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "AnalyseLanguagePartDtoDataDtoV1": {
        "type": "object",
        "properties": {
          "all": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "available": {
            "type": "boolean"
          },
          "internalFuzzyMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoMatchCountsDtoV1"
          },
          "machineTranslationMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoMatchCountsDtoV1"
          },
          "nonTranslatablesMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoMatchCountsNTDtoV1"
          },
          "repetitions": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "transMemoryMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoMatchCounts101DtoV1"
          }
        }
      },
      "AnalyseLanguagePartDtoMatchCounts101DtoV1": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match101": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          }
        }
      },
      "AnalyseLanguagePartDtoMatchCountsDtoV1": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          }
        }
      },
      "AnalyseLanguagePartDtoMatchCountsNTDtoV1": {
        "type": "object",
        "properties": {
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          },
          "match99": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoCountsDtoV1"
          }
        }
      },
      "AnalyseLanguagePartDtoV1": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoDataDtoV1"
          },
          "discountedData": {
            "$ref": "#/components/schemas/AnalyseLanguagePartDtoDataDtoV1"
          },
          "id": {
            "type": "string"
          },
          "jobs": {
            "type": "array",
            "description": "Max of 100 jobs returned, use \"List jobs of analyses\" to get all",
            "items": {
              "$ref": "#/components/schemas/AnalyseJobReferenceV1"
            }
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "AnalyseLanguagePartReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "jobs": {
            "type": "array",
            "description": "Max of 100 jobs returned, use \"List jobs of analyses\" to get all",
            "items": {
              "$ref": "#/components/schemas/AnalyseJobReferenceV1"
            }
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "AnalyseLanguagePartV2DtoCountsDtoV2": {
        "type": "object",
        "properties": {
          "characters": {
            "type": "number",
            "format": "double"
          },
          "editingTime": {
            "type": "number",
            "format": "double"
          },
          "normalizedPages": {
            "type": "number",
            "format": "double"
          },
          "percent": {
            "type": "number",
            "format": "double"
          },
          "segments": {
            "type": "number",
            "format": "double"
          },
          "words": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "AnalyseLanguagePartV2DtoDataDtoV2": {
        "type": "object",
        "properties": {
          "all": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "available": {
            "type": "boolean"
          },
          "machineTranslationMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoMatchCountsDtoV2"
          },
          "nonTranslatablesMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoMatchCountsNTDtoV2"
          },
          "repetitions": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "transMemoryMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoMatchCounts101DtoV2"
          }
        }
      },
      "AnalyseLanguagePartV2DtoMatchCounts101DtoV2": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match101": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          }
        }
      },
      "AnalyseLanguagePartV2DtoMatchCountsDtoV2": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          }
        }
      },
      "AnalyseLanguagePartV2DtoMatchCountsNTDtoV2": {
        "type": "object",
        "properties": {
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          },
          "match99": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoCountsDtoV2"
          }
        }
      },
      "AnalyseLanguagePartV2DtoV2": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoDataDtoV2"
          },
          "discountedData": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoDataDtoV2"
          },
          "id": {
            "type": "string"
          },
          "jobs": {
            "type": "array",
            "description": "Max of 100 jobs returned, use \"List jobs of analyses\" to get all",
            "items": {
              "$ref": "#/components/schemas/AnalyseJobReferenceV1"
            }
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "AnalyseLanguagePartV3DtoCountsDtoV3": {
        "type": "object",
        "properties": {
          "characters": {
            "type": "number",
            "format": "double"
          },
          "editingTime": {
            "type": "number",
            "format": "double"
          },
          "normalizedPages": {
            "type": "number",
            "format": "double"
          },
          "percent": {
            "type": "number",
            "format": "double"
          },
          "segments": {
            "type": "number",
            "format": "double"
          },
          "words": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "AnalyseLanguagePartV3DtoDataDtoV3": {
        "type": "object",
        "properties": {
          "all": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "available": {
            "type": "boolean"
          },
          "estimate": {
            "type": "boolean"
          },
          "internalFuzzyMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoMatchCountsDtoV3"
          },
          "machineTranslationMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoMatchCountsDtoV3"
          },
          "nonTranslatablesMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoMatchCountsNTDtoV3"
          },
          "repetitions": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "transMemoryMatches": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoMatchCounts101DtoV3"
          }
        }
      },
      "AnalyseLanguagePartV3DtoMatchCounts101DtoV3": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match101": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          }
        }
      },
      "AnalyseLanguagePartV3DtoMatchCountsDtoV3": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          }
        }
      },
      "AnalyseLanguagePartV3DtoMatchCountsNTDtoV3": {
        "type": "object",
        "properties": {
          "match0": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match100": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match50": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match75": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match85": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          },
          "match95": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoCountsDtoV3"
          }
        }
      },
      "AnalyseLanguagePartV3DtoV3": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoDataDtoV3"
          },
          "discountedData": {
            "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoDataDtoV3"
          },
          "id": {
            "type": "string"
          },
          "jobs": {
            "type": "array",
            "description": "Max of 100 jobs returned, use \"List jobs of analyses\" to get all",
            "items": {
              "$ref": "#/components/schemas/AnalyseJobReferenceV1"
            }
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLang": {
            "type": "string"
          },
          "transMemories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransMemoryReferenceDtoV2"
            }
          }
        }
      },
      "AnalyseRecalculateRequestDtoV1": {
        "type": "object",
        "required": [
          "analyses"
        ],
        "properties": {
          "analyses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "callbackUrl": {
            "type": "string"
          }
        }
      },
      "AnalyseRecalculateResponseDtoV1": {
        "type": "object",
        "properties": {
          "analyses": {
            "type": "array",
            "description": "Asynchronous request for each analysis being recalculated",
            "items": {
              "$ref": "#/components/schemas/AsyncAnalyseResponseDtoV1"
            }
          }
        }
      },
      "AnalyseReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyseReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AnalyseReferenceV1": {
        "type": "object",
        "properties": {
          "analyseLanguageParts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyseLanguagePartReferenceV1"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "importStatus": {
            "$ref": "#/components/schemas/ImportStatusDtoV1"
          },
          "innerId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "outdated": {
            "type": "boolean"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "pureWarnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare",
              "PreAnalyseProvider",
              "ContinuousPostAnalyse",
              "ContinuousPreAnalyse"
            ]
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "AnalyseSettingsDtoV1": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "allowAutomaticPostAnalysis": {
            "type": "boolean",
            "description": "If automatic post analysis should be created after update source. Default: false"
          },
          "analyzeByLanguage": {
            "type": "boolean",
            "description": "When true, creates one analysis per target language instead of a single combined analysis. Default: false"
          },
          "analyzeByProvider": {
            "type": "boolean",
            "description": "When true, creates one analysis per assigned provider instead of a single combined analysis. Default: false"
          },
          "countSourceUnits": {
            "type": "boolean",
            "description": "Whether the analysis counts source or target word/character units. When true, counts are based on the source language content; when false, counts are based on the target language content. Default: false"
          },
          "includeConfirmedSegments": {
            "type": "boolean",
            "description": "When true, confirmed (translated) segments are included in the counts. Default: false"
          },
          "includeFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches (segments that fuzzily repeat within the analyzed content) are included in the counts. Default: false"
          },
          "includeLockedSegments": {
            "type": "boolean",
            "description": "When true, locked segments are included in the counts. Default: false"
          },
          "includeMachineTranslationMatches": {
            "type": "boolean",
            "description": "When true, machine translation matches are included in the counts. Default: false"
          },
          "includeNonTranslatables": {
            "type": "boolean",
            "description": "When true, non-translatable segments are included in the counts. Default: false"
          },
          "includeNotConfirmedSegments": {
            "type": "boolean",
            "description": "When true, not confirmed segments are included in the counts. Default: false"
          },
          "includeNumbers": {
            "type": "boolean",
            "description": "When true, number-only segments are included in the counts. Default: false"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the counts. Default: false"
          },
          "machineTranslatePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against machine translation matches. Default: false"
          },
          "namingPattern": {
            "type": "string"
          },
          "nonTranslatablePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance for non-translatable segments. Default: false"
          },
          "separateFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy repetitions are counted as a separate category instead of being merged into the Repetitions count. Default: false"
          },
          "skipMtScoreThreshold": {
            "type": "number",
            "format": "double",
            "description": "Used only for type=PreAnalyse or PreAnalyseTarget. Threshold above which the MT suggestions are not used. Default: value from PreTranslate settings"
          },
          "transMemoryPostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against translation memory matches. Default: false"
          },
          "type": {
            "type": "string",
            "description": "Analysis type: PreAnalyse (source segments analysis), PostAnalyse (machine translation post-editing analysis), PreAnalyseTarget (target segments analysis) or Compare (compares word/character counts across workflow levels)",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare"
            ]
          }
        }
      },
      "AnalyseV2DtoV2": {
        "type": "object",
        "properties": {
          "analyseLanguageParts": {
            "type": "array",
            "description": "Per-language-pair analysis results",
            "items": {
              "$ref": "#/components/schemas/AnalyseLanguagePartV2DtoV2"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the analysis was created"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Analysis name"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "type": {
            "type": "string",
            "description": "Analysis type. Newly created analyses are PreAnalyse, PostAnalyse or Compare; responses may also return internally created types: PreAnalyseTarget, PreAnalyseProvider, ContinuousPreAnalyse or ContinuousPostAnalyse",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare",
              "PreAnalyseProvider",
              "ContinuousPostAnalyse",
              "ContinuousPreAnalyse"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "AnalyseV3DtoV3": {
        "type": "object",
        "properties": {
          "analyseLanguageParts": {
            "type": "array",
            "description": "Per-language-pair analysis results",
            "items": {
              "$ref": "#/components/schemas/AnalyseLanguagePartV3DtoV3"
            }
          },
          "canChangeNetRateScheme": {
            "type": "boolean",
            "description": "Whether the current user may change the net rate scheme"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the analysis was created"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "importStatus": {
            "$ref": "#/components/schemas/ImportStatusDtoV1"
          },
          "innerId": {
            "type": "integer",
            "format": "int32",
            "description": "Sequential number of the analysis within the project"
          },
          "name": {
            "type": "string",
            "description": "Analysis name"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "outdated": {
            "type": "boolean",
            "description": "When true, the analysis is outdated and should be recalculated"
          },
          "project": {
            "$ref": "#/components/schemas/A_reference_to_a_project"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "pureWarnings": {
            "type": "array",
            "description": "Warnings produced while creating the analysis",
            "items": {
              "type": "string"
            }
          },
          "settings": {
            "$ref": "#/components/schemas/AbstractAnalyseSettingsDtoV1"
          },
          "type": {
            "type": "string",
            "description": "Analysis type. Newly created analyses are PreAnalyse (source segments analysis), PostAnalyse (machine translation post-editing analysis) or Compare (compares word/character counts across workflow levels); responses may also return internally created types: PreAnalyseTarget (target segments analysis), PreAnalyseProvider (pre-analysis created per assigned provider, see 'Create analyses by providers'), ContinuousPreAnalyse or ContinuousPostAnalyse (pre/post analyses automatically created for continuous jobs)",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare",
              "PreAnalyseProvider",
              "ContinuousPostAnalyse",
              "ContinuousPreAnalyse"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "AnalysesV2DtoV2": {
        "type": "object",
        "properties": {
          "analyses": {
            "type": "array",
            "description": "Edited analyses",
            "items": {
              "$ref": "#/components/schemas/AnalyseV2DtoV2"
            }
          }
        }
      },
      "AndroidSettingsDtoV1": {
        "type": "object",
        "properties": {
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "ApcWarningActionDtoV1": {
        "type": "object",
        "properties": {
          "actionType": {
            "type": "string",
            "enum": [
              "SHOW",
              "API_PUT"
            ]
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ApcWarningDtoV1": {
        "type": "object",
        "properties": {
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApcWarningActionDtoV1"
            }
          },
          "message": {
            "type": "string"
          },
          "messageCode": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "UNREACHABLE_TRANSLATION_EXPORT",
              "AFFECTED_TRANSLATION_EXPORT",
              "DEPRECATED_TARGET_LOCALES",
              "NO_MORE_SUPPORTED_LOCALES",
              "NEEDS_ATTENTION",
              "STOPPED",
              "UNKNOWN"
            ]
          }
        }
      },
      "Apertium": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "ApertiumSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AppleTokenResponseDtoV1": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "description": "Apple access token"
          },
          "expires_in": {
            "type": "string",
            "description": "Lifetime of the access token in seconds"
          },
          "id_token": {
            "type": "string",
            "description": "Apple identity token (JWT)"
          },
          "refresh_token": {
            "type": "string",
            "description": "Apple refresh token"
          },
          "token_type": {
            "type": "string",
            "description": "Type of the issued token"
          }
        },
        "description": "Token response returned by Apple when refreshing an Apple token"
      },
      "AsciidocSettingsDtoV1": {
        "type": "object",
        "properties": {
          "extractBtnMenuLabels": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "extractCustomDocumentAttributeNameRegexp": {
            "type": "string",
            "description": "Default: `.*`"
          },
          "htmlInPassthrough": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "nontranslatableMonospaceCustomStylesRegexp": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "AssessmentBasicDtoV1": {
        "type": "object",
        "properties": {
          "lqaProfile": {
            "$ref": "#/components/schemas/LqaProfileAssessmentDtoV1"
          },
          "startedDate": {
            "type": "string",
            "format": "date-time",
            "description": "When assessment started or empty if it was not yet"
          }
        },
        "description": "Basic info about LQA assessment"
      },
      "AssessmentDetailDtoV1": {
        "type": "object",
        "properties": {
          "assessmentJobPartUid": {
            "type": "string",
            "description": "UID of job corresponding to the assessment. Null when assessment not found"
          },
          "assessmentResult": {
            "$ref": "#/components/schemas/AssessmentResultDtoV1"
          },
          "availability": {
            "type": "string",
            "description": "Availability state of LQA for this job.",
            "enum": [
              "NOT_AVAILABLE",
              "DISABLED_IN_ALL_WORKFLOW_STEPS",
              "DISABLED_IN_CURRENT_WORKFLOW_STEP",
              "ENABLED"
            ]
          },
          "editedDate": {
            "type": "string",
            "format": "date-time",
            "description": "When assessment was edited after previous finish (or empty)"
          },
          "finishedDate": {
            "type": "string",
            "format": "date-time",
            "description": "When assessment was finished (or empty)"
          },
          "jobPartUid": {
            "type": "string",
            "description": "UID of the corresponding job"
          },
          "lqaEnabled": {
            "type": "boolean",
            "description": "If LQA is enabled and configured for this job"
          },
          "lqaProfile": {
            "$ref": "#/components/schemas/LqaProfileAssessmentDtoV1"
          },
          "mode": {
            "type": "string",
            "description": "What the assessment captures. ISSUES: error issues only. ISSUES_AND_SCORE: issues plus an MQM (Multidimensional Quality Metrics) score expressed as a percentage.",
            "enum": [
              "ISSUES",
              "ISSUES_AND_SCORE"
            ]
          },
          "origin": {
            "type": "string",
            "description": "Whether the assessment was performed by a human reviewer or an automated system.",
            "enum": [
              "HUMAN",
              "AI"
            ]
          },
          "overallFeedback": {
            "type": "string",
            "description": "Overall feedback from the LQA reviewer"
          },
          "reportCanBeDownloaded": {
            "type": "boolean",
            "description": "If Assessment report/scorecard is ready and can be downloaded, user's rights are considered"
          },
          "requestedJobPartUid": {
            "type": "string",
            "description": "The originally requested job UID"
          },
          "reviewProvider": {
            "$ref": "#/components/schemas/ReviewProviderDtoV1"
          },
          "startedDate": {
            "type": "string",
            "format": "date-time",
            "description": "When assessment was started (or empty)"
          },
          "status": {
            "type": "string",
            "description": "Current lifecycle state of the assessment. NOT_STARTED: no assessment exists yet. STARTED: assessment is in progress. FINISHED: scorer has submitted results. FINISHED_WITH_EDITING: finished after a prior edit. EDITED: reviewer edited the submission after finishing.",
            "enum": [
              "NOT_STARTED",
              "STARTED",
              "FINISHED",
              "FINISHED_WITH_EDITING",
              "EDITED"
            ]
          },
          "translationProvider": {
            "$ref": "#/components/schemas/UidReference"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepDtoV1"
          }
        },
        "description": "LQA assessment state"
      },
      "AssessmentDetailsDtoV1": {
        "type": "object",
        "properties": {
          "assessmentDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssessmentDetailDtoV1"
            }
          }
        }
      },
      "AssessmentRequestDtoV1": {
        "type": "object",
        "required": [
          "jobParts"
        ],
        "properties": {
          "jobParts": {
            "type": "array",
            "description": "UIDs of the job parts to target; between 1 and 100 entries",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        },
        "description": "List of job part references for a batch LQA assessment operation"
      },
      "AssessmentResultDtoV1": {
        "type": "object",
        "required": [
          "issueCounts",
          "jobPart",
          "status"
        ],
        "properties": {
          "issueCounts": {
            "$ref": "#/components/schemas/IssueCountsDtoV1"
          },
          "jobPart": {
            "$ref": "#/components/schemas/UidReference"
          },
          "score": {
            "type": "number",
            "format": "double",
            "example": 94.5,
            "description": "LQA score as a percentage between 0 and 100."
          },
          "status": {
            "type": "string",
            "example": "PASS",
            "description": "PASS or FAIL verdict based on the project's configured LQA threshold.",
            "enum": [
              "PASS",
              "FAIL"
            ]
          }
        },
        "description": "Language Quality Assessment (LQA) result for a single job part, including the PASS/FAIL verdict, score, and a breakdown of issue counts by severity."
      },
      "AssessmentResultsDtoV1": {
        "type": "object",
        "required": [
          "results"
        ],
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssessmentResultDtoV1"
            }
          }
        }
      },
      "AssignableVendorsDtoV1": {
        "type": "object",
        "properties": {
          "all": {
            "type": "array",
            "description": "Remaining active vendors not already covered by relevant",
            "items": {
              "$ref": "#/components/schemas/VendorDtoV1"
            }
          },
          "relevant": {
            "type": "array",
            "description": "Vendors matching the project's client, domain, sub-domain, source/target languages, and workflow steps, most relevant first",
            "items": {
              "$ref": "#/components/schemas/VendorDtoV1"
            }
          }
        },
        "description": "Vendors that can be assigned to the project"
      },
      "AssignedJobDtoV1": {
        "type": "object",
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "filename": {
            "type": "string"
          },
          "importStatus": {
            "$ref": "#/components/schemas/ImportStatusDtoV1"
          },
          "imported": {
            "type": "boolean"
          },
          "innerId": {
            "type": "string"
          },
          "project": {
            "$ref": "#/components/schemas/A_reference_to_a_project"
          },
          "sourceLang": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          },
          "targetLang": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ProjectWorkflowStepReferenceV1"
          }
        }
      },
      "AssignedJobPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignedJobDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AssignmentPerTargetLangDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "AsyncAnalyseListResponseDtoV1": {
        "type": "object",
        "properties": {
          "analyses": {
            "type": "array",
            "description": "Asynchronous request for each created analysis",
            "items": {
              "$ref": "#/components/schemas/AsyncAnalyseResponseDtoV1"
            }
          }
        }
      },
      "AsyncAnalyseListResponseV2DtoV2": {
        "type": "object",
        "properties": {
          "asyncRequests": {
            "type": "array",
            "description": "Asynchronous request for each created analysis",
            "items": {
              "$ref": "#/components/schemas/AsyncAnalyseResponseV2DtoV2"
            }
          }
        }
      },
      "AsyncAnalyseResponseDtoV1": {
        "type": "object",
        "properties": {
          "analyse": {
            "$ref": "#/components/schemas/ObjectReference"
          },
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestDtoV1"
          }
        }
      },
      "AsyncAnalyseResponseV2DtoV2": {
        "type": "object",
        "properties": {
          "analyse": {
            "$ref": "#/components/schemas/ObjectReference"
          },
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestV2DtoV2"
          }
        }
      },
      "AsyncExportTMByQueryDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/ObjectReference"
          },
          "exportTargetLangs": {
            "type": "array",
            "description": "Target language locales included in this export",
            "items": {
              "type": "string"
            }
          },
          "queries": {
            "type": "array",
            "description": "Query expressions with their associated locales",
            "items": {
              "$ref": "#/components/schemas/Query"
            }
          },
          "transMemory": {
            "$ref": "#/components/schemas/ObjectReference"
          }
        },
        "description": "Export job descriptor containing query expressions, locale selections and the source TM reference"
      },
      "AsyncExportTMByQueryResponseDtoV1": {
        "type": "object",
        "properties": {
          "asyncExport": {
            "$ref": "#/components/schemas/AsyncExportTMByQueryDtoV1"
          },
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestDtoV1"
          }
        },
        "description": "Response envelope returned by exportByQueryAsync with async request handle and export job details"
      },
      "AsyncExportTMDtoV2": {
        "type": "object",
        "properties": {
          "exportTargetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "transMemory": {
            "$ref": "#/components/schemas/ObjectReference"
          }
        }
      },
      "AsyncExportTMResponseDtoV2": {
        "type": "object",
        "properties": {
          "asyncExport": {
            "$ref": "#/components/schemas/AsyncExportTMDtoV2"
          },
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestV2DtoV2"
          }
        }
      },
      "AsyncFileOpResponseDtoV2": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "description": "Type of the async file operation, e.g. API_DOWNLOAD or API_UPLOAD",
            "enum": [
              "GUI_UPLOAD",
              "GUI_DOWNLOAD",
              "GUI_REIMPORT",
              "GUI_REIMPORT_TARGET",
              "CJ_UPLOAD",
              "CJ_DOWNLOAD",
              "APC_UPLOAD",
              "APC_DOWNLOAD",
              "API_UPLOAD",
              "API_DOWNLOAD",
              "SUBMITTER_PORTAL_DOWNLOAD"
            ]
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the async task was created"
          },
          "fileName": {
            "type": "string",
            "description": "Name of the file"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric ID of the async task, encoded as a string"
          }
        }
      },
      "AsyncRequestDtoV1": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "PRE_ANALYSE",
              "POST_ANALYSE",
              "CONTINUOUS_PRE_ANALYSE",
              "CONTINUOUS_POST_ANALYSE",
              "COMPARE_ANALYSE",
              "PARENT_ANALYSE",
              "PRE_TRANSLATE",
              "ASYNC_TRANSLATE",
              "IMPORT_JOB",
              "IMPORT_FILE",
              "ALIGN",
              "EXPORT_TMX_BY_QUERY",
              "EXPORT_TMX",
              "IMPORT_TMX",
              "IMPORT_MXLF_INTO_TM",
              "STORE_BILINGUAL_FILE_TO_TM",
              "IMPORT_TBX",
              "IMPORT_TBX_TB3",
              "INSERT_INTO_TM",
              "DELETE_TM",
              "CLEAR_TM",
              "QA",
              "QA_V3",
              "UPDATE_CONTINUOUS_JOB",
              "UPDATE_SOURCE",
              "UPDATE_TARGET",
              "EXTRACT_CLEANED_TMS",
              "GLOSSARY_PUT",
              "GLOSSARY_DELETE",
              "ASYNC_TRANSLATE_VERIFY",
              "CREATE_PROJECT",
              "EXPORT_COMPLETE_FILE",
              "IMPORT_ANNOTATIONS",
              "FILE_FLOW_CONVERTER_IMPORT",
              "FILE_FLOW_MT_PRETRANSLATE",
              "FILE_FLOW_QUALITY_ESTIMATION",
              "AUTO_LQA",
              "ADOPT_SEGMENT_DATA",
              "ADOPT_SEGMENT_SET_DATA",
              "QP_EVALUATION",
              "QP_EVALUATION_V2",
              "QUALITY_EVALUATION",
              "AUTO_ADAPT",
              "MT_OPTIMIZE"
            ]
          },
          "asyncResponse": {
            "$ref": "#/components/schemas/AsyncResponseDtoV1"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "parent": {
            "$ref": "#/components/schemas/AsyncRequestDtoV1"
          },
          "project": {
            "$ref": "#/components/schemas/A_reference_to_a_project"
          }
        }
      },
      "AsyncRequestReferenceDtoV2": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the object",
            "enum": [
              "JOB"
            ]
          },
          "uid": {
            "type": "string",
            "description": "UID of the object"
          }
        },
        "description": "Reference object that is being processed by async request"
      },
      "AsyncRequestReferenceV1": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "PRE_ANALYSE",
              "POST_ANALYSE",
              "CONTINUOUS_PRE_ANALYSE",
              "CONTINUOUS_POST_ANALYSE",
              "COMPARE_ANALYSE",
              "PARENT_ANALYSE",
              "PRE_TRANSLATE",
              "ASYNC_TRANSLATE",
              "IMPORT_JOB",
              "IMPORT_FILE",
              "ALIGN",
              "EXPORT_TMX_BY_QUERY",
              "EXPORT_TMX",
              "IMPORT_TMX",
              "IMPORT_MXLF_INTO_TM",
              "STORE_BILINGUAL_FILE_TO_TM",
              "IMPORT_TBX",
              "IMPORT_TBX_TB3",
              "INSERT_INTO_TM",
              "DELETE_TM",
              "CLEAR_TM",
              "QA",
              "QA_V3",
              "UPDATE_CONTINUOUS_JOB",
              "UPDATE_SOURCE",
              "UPDATE_TARGET",
              "EXTRACT_CLEANED_TMS",
              "GLOSSARY_PUT",
              "GLOSSARY_DELETE",
              "ASYNC_TRANSLATE_VERIFY",
              "CREATE_PROJECT",
              "EXPORT_COMPLETE_FILE",
              "IMPORT_ANNOTATIONS",
              "FILE_FLOW_CONVERTER_IMPORT",
              "FILE_FLOW_MT_PRETRANSLATE",
              "FILE_FLOW_QUALITY_ESTIMATION",
              "AUTO_LQA",
              "ADOPT_SEGMENT_DATA",
              "ADOPT_SEGMENT_SET_DATA",
              "QP_EVALUATION",
              "QP_EVALUATION_V2",
              "QUALITY_EVALUATION",
              "AUTO_ADAPT",
              "MT_OPTIMIZE"
            ]
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          }
        }
      },
      "AsyncRequestStatusDtoV1": {
        "type": "object",
        "properties": {
          "concurrentRequests": {
            "$ref": "#/components/schemas/ConcurrentRequestsDtoV1"
          }
        }
      },
      "AsyncRequestV2DtoV2": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "PRE_ANALYSE",
              "POST_ANALYSE",
              "CONTINUOUS_PRE_ANALYSE",
              "CONTINUOUS_POST_ANALYSE",
              "COMPARE_ANALYSE",
              "PARENT_ANALYSE",
              "PRE_TRANSLATE",
              "ASYNC_TRANSLATE",
              "IMPORT_JOB",
              "IMPORT_FILE",
              "ALIGN",
              "EXPORT_TMX_BY_QUERY",
              "EXPORT_TMX",
              "IMPORT_TMX",
              "IMPORT_MXLF_INTO_TM",
              "STORE_BILINGUAL_FILE_TO_TM",
              "IMPORT_TBX",
              "IMPORT_TBX_TB3",
              "INSERT_INTO_TM",
              "DELETE_TM",
              "CLEAR_TM",
              "QA",
              "QA_V3",
              "UPDATE_CONTINUOUS_JOB",
              "UPDATE_SOURCE",
              "UPDATE_TARGET",
              "EXTRACT_CLEANED_TMS",
              "GLOSSARY_PUT",
              "GLOSSARY_DELETE",
              "ASYNC_TRANSLATE_VERIFY",
              "CREATE_PROJECT",
              "EXPORT_COMPLETE_FILE",
              "IMPORT_ANNOTATIONS",
              "FILE_FLOW_CONVERTER_IMPORT",
              "FILE_FLOW_MT_PRETRANSLATE",
              "FILE_FLOW_QUALITY_ESTIMATION",
              "AUTO_LQA",
              "ADOPT_SEGMENT_DATA",
              "ADOPT_SEGMENT_SET_DATA",
              "QP_EVALUATION",
              "QP_EVALUATION_V2",
              "QUALITY_EVALUATION",
              "AUTO_ADAPT",
              "MT_OPTIMIZE"
            ]
          },
          "asyncResponse": {
            "$ref": "#/components/schemas/AsyncResponseV2DtoV2"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "parent": {
            "$ref": "#/components/schemas/AsyncRequestV2DtoV2"
          },
          "project": {
            "$ref": "#/components/schemas/A_reference_to_a_project"
          }
        }
      },
      "AsyncRequestWrapperDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestDtoV1"
          }
        }
      },
      "AsyncRequestWrapperV2DtoV2": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestV2DtoV2"
          },
          "reference": {
            "$ref": "#/components/schemas/AsyncRequestReferenceDtoV2"
          }
        }
      },
      "AsyncResponseDtoV1": {
        "type": "object",
        "properties": {
          "acceptedSegmentsCount": {
            "type": "integer",
            "format": "int64"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "errorCode": {
            "type": "string"
          },
          "errorDesc": {
            "type": "string"
          },
          "errorDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV1"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV1"
            }
          }
        }
      },
      "AsyncResponseV2DtoV2": {
        "type": "object",
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "errorCode": {
            "type": "string"
          },
          "errorDesc": {
            "type": "string"
          },
          "errorDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV2"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV2"
            }
          }
        }
      },
      "AuthPageDto": {
        "type": "object",
        "properties": {
          "codeVerifier": {
            "type": "string"
          },
          "oauthClientId": {
            "type": "string"
          },
          "reconnectParameter": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "AEM_PLUGIN",
              "AMAZON_S3",
              "AZURE",
              "BITBUCKET",
              "BITBUCKETSERVER",
              "BLUEPRINT",
              "BOX",
              "BRAZE",
              "BRAZE_MULTILANG",
              "CONFLUENCE",
              "CONTENTFUL",
              "CONTENTFULENTRYLEVEL",
              "CONTENTFUL2",
              "CONTENTSTACK",
              "DROPBOX",
              "DRUPAL",
              "DRUPAL_PLUGIN",
              "FTP",
              "GIT",
              "GITHUB",
              "GITHUB2",
              "GITLAB",
              "GOOGLE",
              "GOOGLE_DRIVE2",
              "HELPSCOUT",
              "HUBSPOT",
              "JOOMLA",
              "KENTICO",
              "KENTICO_KONTENT",
              "MAGENTO",
              "MARKETO",
              "ONEDRIVE",
              "OPTIMIZELY",
              "PARDOT",
              "PHRASE",
              "SALESFORCE",
              "SFTP",
              "SHAREPOINT",
              "SITECORE",
              "TRIDION",
              "TYPO3",
              "VERBIS",
              "WORDPRESS",
              "ZENDESK"
            ]
          },
          "url": {
            "type": "string"
          }
        }
      },
      "AutodeskMtApi": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "AutodeskMtApiSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "clientId",
              "secret"
            ],
            "properties": {
              "clientId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secret": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AutodeskNmt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "AutodeskNmtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "AutomatedProjectCreateProjectAutomationV3DtoV3": {
        "type": "object",
        "properties": {
          "applyProjectDueDateToJobsEnabled": {
            "type": "boolean",
            "description": "When true, the calculated project due date is also applied to its jobs"
          },
          "assignProvidersEnabled": {
            "type": "boolean",
            "description": "When true, providers are automatically assigned to the created project"
          },
          "calculateDueDateEnabled": {
            "type": "boolean",
            "description": "When true, the project due date is calculated using the configured due date scheme"
          },
          "createAnalysesEnabled": {
            "type": "boolean",
            "description": "When true, analyses are automatically created for the created project"
          },
          "createAnalysesWorkflowNumber": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number the created analyses are based on"
          },
          "createBuyerQuotesEnabled": {
            "type": "boolean",
            "description": "When true, buyer quotes are automatically created for the created project"
          },
          "createProviderQuotesEnabled": {
            "type": "boolean",
            "description": "When true, provider quotes are automatically created for the created project"
          },
          "dueDateSchemeUid": {
            "type": "string",
            "description": "Identifier of the due date scheme used to calculate the project due date"
          },
          "notifyProjectOwnerEmailTemplate": {
            "$ref": "#/components/schemas/AutomationEmailTemplateV3DtoV3"
          },
          "notifyProjectOwnerEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified after the project is created"
          }
        }
      },
      "AutomatedProjectCreationBatchDtoV1": {
        "type": "object",
        "required": [
          "automatedProjectIds"
        ],
        "properties": {
          "automatedProjectIds": {
            "type": "array",
            "description": "Identifiers of the automated project creation settings to operate on. Must contain at least one identifier.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AutomatedProjectCreationRunningDtoV1": {
        "type": "object",
        "properties": {
          "running": {
            "type": "boolean"
          }
        }
      },
      "AutomatedProjectCreationSimpleDtoV1": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When true, the automated project creation is active and runs on its schedule"
          },
          "connectorId": {
            "type": "string",
            "description": "Identifier of the connector that provides access to the monitored remote storage"
          },
          "connectorName": {
            "type": "string",
            "description": "Name of the connector that provides access to the monitored remote storage"
          },
          "connectorType": {
            "type": "string",
            "description": "Type of the connector that provides access to the monitored remote storage",
            "enum": [
              "AEM_PLUGIN",
              "AMAZON_S3",
              "AZURE",
              "BITBUCKET",
              "BITBUCKETSERVER",
              "BLUEPRINT",
              "BOX",
              "BRAZE",
              "BRAZE_MULTILANG",
              "CONFLUENCE",
              "CONTENTFUL",
              "CONTENTFULENTRYLEVEL",
              "CONTENTFUL2",
              "CONTENTSTACK",
              "DROPBOX",
              "DRUPAL",
              "DRUPAL_PLUGIN",
              "FTP",
              "GIT",
              "GITHUB",
              "GITHUB2",
              "GITLAB",
              "GOOGLE",
              "GOOGLE_DRIVE2",
              "HELPSCOUT",
              "HUBSPOT",
              "JOOMLA",
              "KENTICO",
              "KENTICO_KONTENT",
              "MAGENTO",
              "MARKETO",
              "ONEDRIVE",
              "OPTIMIZELY",
              "PARDOT",
              "PHRASE",
              "SALESFORCE",
              "SFTP",
              "SHAREPOINT",
              "SITECORE",
              "TRIDION",
              "TYPO3",
              "VERBIS",
              "WORDPRESS",
              "ZENDESK"
            ]
          },
          "continuousProject": {
            "type": "boolean",
            "description": "When true, files are imported into a single continuously updated project"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Name of the automated project creation settings"
          },
          "newVersion": {
            "type": "boolean",
            "description": "When true, the APC uses the new version of automated project creation"
          },
          "storedInAutomation": {
            "type": "boolean",
            "description": "When true, the APC is stored on the Automation Service"
          }
        }
      },
      "AutomatedProjectCreationSimplePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomatedProjectCreationSimpleDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AutomatedProjectCreationStatusAssociatedProjectsDtoV1": {
        "type": "object",
        "properties": {
          "latestProjects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AutomatedProjectCreationStatusProjectDtoV1"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "AutomatedProjectCreationStatusDtoV1": {
        "type": "object",
        "required": [
          "backendUuid",
          "id",
          "name",
          "status"
        ],
        "properties": {
          "associatedProjects": {
            "$ref": "#/components/schemas/AutomatedProjectCreationStatusAssociatedProjectsDtoV1"
          },
          "backendUuid": {
            "type": "string",
            "description": "Opaque identifier of the settings on the backend automation engine"
          },
          "connectorId": {
            "type": "string",
            "description": "Identifier of the connector providing access to the monitored remote storage"
          },
          "connectorName": {
            "type": "string",
            "description": "Name of the connector providing access to the monitored remote storage"
          },
          "continuousProject": {
            "type": "boolean",
            "description": "When true, files are imported into a single continuously updated project instead of creating a new project on every run"
          },
          "deprecatedTargetLangs": {
            "type": "array",
            "description": "Target languages configured on the project template that are no longer supported",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "lastChecked": {
            "type": "string",
            "description": "Timestamp of the last check, as a machine-parseable string with a numeric UTC offset (e.g. \"2026-07-23T10:15:00+0200\")"
          },
          "lastCheckedFormatted": {
            "type": "string",
            "description": "Human-readable, locale-formatted representation of `lastChecked` (e.g. \"2026-07-23 10:15 CEST\"), intended for display rather than parsing"
          },
          "lastForceImport": {
            "type": "string",
            "description": "Timestamp of the last force import"
          },
          "monitoredFolderStatuses": {
            "type": "array",
            "description": "Status of each monitored remote folder, including any errors encountered while reading or importing files from that folder",
            "items": {
              "$ref": "#/components/schemas/MonitoredFolderStatusDtoV1"
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the automated project creation settings. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "nextChecked": {
            "type": "string",
            "description": "Timestamp of the next scheduled check, as a machine-parseable string with a numeric UTC offset (e.g. \"2026-07-23T10:15:00+0200\")"
          },
          "nextCheckedFormatted": {
            "type": "string",
            "description": "Human-readable, locale-formatted representation of `nextChecked` (e.g. \"2026-07-23 10:15 CEST\"), intended for display rather than parsing"
          },
          "projectTemplateSourceLang": {
            "type": "string",
            "description": "Source language of the created projects, taken from the project template"
          },
          "projectTemplateTargetLangs": {
            "type": "array",
            "description": "Target languages of the created projects, taken from the project template",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "status": {
            "type": "string",
            "description": "Current status of the automated project creation",
            "enum": [
              "ACTIVE",
              "NEEDS_ATTENTION",
              "INACTIVE",
              "STOPPED",
              "RUNNING",
              "WARNING",
              "ERROR"
            ]
          },
          "statusMessage": {
            "type": "string",
            "description": "Human-readable message describing the current status; null if none applies"
          },
          "warnings": {
            "type": "array",
            "description": "Active warnings for the automated project creation, including connector and export delivery failures. Entries of type `NEEDS_ATTENTION` whose payload includes `affectedTranslationExportsUids` or `unreachableTranslationExportsUids` indicate jobs whose translations failed to export to the connected destination (e.g. a CMS/connector).",
            "items": {
              "$ref": "#/components/schemas/ApcWarningDtoV1"
            }
          }
        }
      },
      "AutomatedProjectCreationStatusProjectDtoV1": {
        "type": "object",
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "projectName": {
            "type": "string"
          },
          "projectUrl": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ASSIGNED",
              "COMPLETED",
              "ACCEPTED_BY_VENDOR",
              "DECLINED_BY_VENDOR",
              "COMPLETED_BY_VENDOR",
              "CANCELLED"
            ]
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "AutomatedProjectCreationV3DtoV3": {
        "type": "object",
        "required": [
          "frequency",
          "id",
          "monitoredFolders",
          "name"
        ],
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When true, the automated project creation is active and runs on its schedule"
          },
          "continuousProject": {
            "type": "boolean",
            "description": "When true, files are imported into a single continuously updated project"
          },
          "createProjectAutomation": {
            "$ref": "#/components/schemas/AutomatedProjectCreateProjectAutomationV3DtoV3"
          },
          "deprecatedTargetLangs": {
            "type": "array",
            "description": "Previously selected target language codes that are no longer available",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "frequency": {
            "$ref": "#/components/schemas/AutomationProjectCreationFrequencyV3DtoV3"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the automated project creation settings"
          },
          "initialIterationMode": {
            "type": "string",
            "description": "Mode used for the first run of the automated project creation",
            "enum": [
              "DRY_RUN",
              "FULL_RUN"
            ]
          },
          "monitoredFolders": {
            "type": "array",
            "description": "Remote folders being monitored",
            "items": {
              "$ref": "#/components/schemas/MonitoredFolderV3DtoV3"
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the automated project creation settings. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "notifyOnNeedsAttentionEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified by email and in-app whenever this automated project creation needs attention"
          },
          "projectCreationMode": {
            "type": "string",
            "description": "How files are grouped into created projects",
            "enum": [
              "ALL_FILES_IN_SINGLE_PROJECT",
              "BY_FOLDER",
              "EACH_FILE_IN_SEPARATE_PROJECT"
            ]
          },
          "selectedTargetLangs": {
            "type": "array",
            "description": "Target language codes currently selected for the created projects",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code of the created projects"
          },
          "sourceUpdateAutomation": {
            "$ref": "#/components/schemas/AutomatedProjectSourceUpdateAutomationV3DtoV3"
          },
          "targetUpdateAutomation": {
            "$ref": "#/components/schemas/AutomatedProjectTargetUpdateAutomationV3DtoV3"
          },
          "translationExports": {
            "type": "array",
            "description": "Translation-export configuration entries",
            "items": {
              "$ref": "#/components/schemas/TRANSLATION_EXPORT_ENTRY"
            }
          },
          "warnings": {
            "type": "array",
            "description": "Warnings raised while resolving the configuration",
            "items": {
              "type": "object"
            }
          },
          "webhook": {
            "$ref": "#/components/schemas/WEBHOOK_TOKEN_V3"
          }
        }
      },
      "AutomatedProjectMonthlyFixedTimeV3DtoV3": {
        "type": "object",
        "properties": {
          "dayOfMonth": {
            "type": "integer",
            "format": "int32",
            "description": "Day of the month (1-31) on which the run is scheduled"
          },
          "fixedTime": {
            "type": "integer",
            "format": "int32",
            "description": "Time of day as HHMM, e.g. 800 for 8:00, 1430 for 14:30, at which the run is scheduled",
            "minimum": 0,
            "maximum": 2359
          },
          "timeZone": {
            "type": "string",
            "description": "Time zone in which fixedTime and dayOfMonth are interpreted"
          }
        }
      },
      "AutomatedProjectSettingsDto": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean"
          },
          "connector": {
            "$ref": "#/components/schemas/NameDto"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "organization": {
            "$ref": "#/components/schemas/NameDto"
          },
          "remoteFolder": {
            "type": "string"
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLangs": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AutomatedProjectSourceUpdateAutomationV3DtoV3": {
        "type": "object",
        "properties": {
          "applyProjectDueDateToJobsEnabled": {
            "type": "boolean",
            "description": "When true, the recalculated project due date is also applied to its jobs"
          },
          "calculateDueDateEnabled": {
            "type": "boolean",
            "description": "When true, the project due date is recalculated using the configured due date scheme"
          },
          "continuousAnalysesSettings": {
            "$ref": "#/components/schemas/ContinuousAnalysesSettingsV3DtoV3"
          },
          "createAnalysesEnabled": {
            "type": "boolean",
            "description": "When true, analyses are created when the source content changes"
          },
          "createAnalysesType": {
            "type": "string",
            "description": "Type of analysis created on source update",
            "enum": [
              "DEFAULT",
              "POST_EDITING",
              "CONTINUOUS",
              "CONTINUOUS_DEFAULT"
            ]
          },
          "createAnalysesWorkflowNumber": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number the created analyses are based on",
            "minimum": 1,
            "maximum": 999
          },
          "createBuyerQuotesEnabled": {
            "type": "boolean",
            "description": "When true, buyer quotes are created when the source content changes"
          },
          "createProviderQuotesEnabled": {
            "type": "boolean",
            "description": "When true, provider quotes are created when the source content changes"
          },
          "dueDateSchemeUid": {
            "type": "string",
            "description": "Identifier of the due date scheme used to recalculate the project due date"
          },
          "notifyProjectOwnerEmailTemplate": {
            "$ref": "#/components/schemas/AutomationEmailTemplateV3DtoV3"
          },
          "notifyProjectOwnerEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified when the source content changes"
          },
          "reopenWorkflowEnabled": {
            "type": "boolean",
            "description": "When true, the workflow is reopened when the source content changes"
          },
          "reopenWorkflowNumberAndLater": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number from which (and later) the workflow is reopened",
            "minimum": 1,
            "maximum": 999
          }
        }
      },
      "AutomatedProjectTargetUpdateAutomationV3DtoV3": {
        "type": "object",
        "properties": {
          "manualReviewEnabled": {
            "type": "boolean",
            "description": "When true, the target update is held for manual review before being applied"
          },
          "notifyProjectOwnerEmailTemplate": {
            "$ref": "#/components/schemas/AutomationEmailTemplateV3DtoV3"
          },
          "notifyProjectOwnerEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified when the target content changes"
          },
          "targetUpdateEnabled": {
            "type": "boolean",
            "description": "When true, the target file is updated when its content changes"
          }
        }
      },
      "AutomatedProjectWeeklyFixedTimeV3DtoV3": {
        "type": "object",
        "properties": {
          "dayOfWeek": {
            "type": "integer",
            "format": "int32",
            "description": "Day of the week (1 = Monday ... 7 = Sunday) on which the run is scheduled"
          },
          "fixedTime": {
            "type": "integer",
            "format": "int32",
            "description": "Time of day as HHMM, e.g. 800 for 8:00, 1430 for 14:30, at which the run is scheduled",
            "minimum": 0,
            "maximum": 2359
          },
          "timeZone": {
            "type": "string",
            "description": "Time zone in which fixedTime and dayOfWeek are interpreted"
          }
        }
      },
      "AutomationEmailTemplateV3DtoV3": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the email template"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the email template"
          }
        }
      },
      "AutomationProjectCreationFrequencyV3DtoV3": {
        "type": "object",
        "required": [
          "frequencyOption"
        ],
        "properties": {
          "frequencyOption": {
            "type": "string",
            "description": "How often the automated project creation runs",
            "enum": [
              "UNDEFINED",
              "WEEKLY_FIXED_TIMES",
              "HOUR_TIME_RANGE",
              "MINUTE_TIME_RANGE",
              "MONTHLY_FIXED_TIMES"
            ]
          },
          "monthlyFixedTimes": {
            "type": "array",
            "description": "Fixed times of the month the run is scheduled at when frequencyOption is MONTHLY_FIXED_TIMES",
            "items": {
              "$ref": "#/components/schemas/AutomatedProjectMonthlyFixedTimeV3DtoV3"
            }
          },
          "range": {
            "type": "integer",
            "format": "int32",
            "description": "Interval length used with HOUR_TIME_RANGE (hours) and MINUTE_TIME_RANGE (minutes) frequency options"
          },
          "weeklyFixedTimes": {
            "type": "array",
            "description": "Fixed times of the week the run is scheduled at when frequencyOption is WEEKLY_FIXED_TIMES",
            "items": {
              "$ref": "#/components/schemas/AutomatedProjectWeeklyFixedTimeV3DtoV3"
            }
          }
        }
      },
      "BITBUCKET": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BITBUCKETSERVER": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "token"
            ],
            "properties": {
              "host": {
                "type": "string"
              },
              "token": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BRAZE_MULTILANG": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "brazeMultilangAccessToken"
            ],
            "properties": {
              "brazeMultilangAccessToken": {
                "type": "string"
              },
              "brazeMultilangHost": {
                "type": "string"
              },
              "brazeMultilangMaxDaysFromLastUpdate": {
                "type": "integer",
                "format": "int32"
              },
              "brazeMultilangTags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "customLocaleMapping": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "BackgroundTasksTbDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the last background task was created"
          },
          "dateFinished": {
            "type": "string",
            "format": "date-time",
            "description": "Date the last background task finished"
          },
          "finishedDataText": {
            "type": "string",
            "description": "Comma-separated list of languages imported by the last import"
          },
          "lastTaskError": {
            "type": "string",
            "description": "Human-readable error message for the last task"
          },
          "lastTaskErrorHtml": {
            "type": "string",
            "description": "HTML-formatted error message for the last task"
          },
          "lastTaskOk": {
            "type": "string",
            "description": "Human-readable outcome message including created/updated term counts"
          },
          "lastTaskString": {
            "type": "string",
            "description": "String representation of the last background task"
          },
          "metadata": {
            "$ref": "#/components/schemas/MetadataResponseTb"
          },
          "status": {
            "type": "string",
            "description": "Status of the last background task (e.g. OK, ERROR, RUNNING)"
          }
        },
        "description": "Background task status and metadata for a term base"
      },
      "BackgroundTasksTmDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the last background task was created"
          },
          "dateFinished": {
            "type": "string",
            "format": "date-time",
            "description": "Date the last background task finished"
          },
          "finishedDataText": {
            "type": "string",
            "description": "Text data produced when the task finished"
          },
          "lastTaskError": {
            "type": "string",
            "description": "Human-readable error message for the last task"
          },
          "lastTaskErrorHtml": {
            "type": "string",
            "description": "HTML-formatted error message for the last task"
          },
          "lastTaskOk": {
            "type": "string",
            "description": "Human-readable success message for the last task (e.g. import count)"
          },
          "lastTaskString": {
            "type": "string",
            "description": "String representation of the last background task"
          },
          "metadata": {
            "$ref": "#/components/schemas/MetadataResponseTm"
          },
          "status": {
            "type": "string",
            "description": "Status of the last background task (e.g. OK, ERROR, RUNNING)"
          }
        },
        "description": "Background task status and metadata for a translation memory"
      },
      "Baidu": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "BaiduSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "secretKey",
              "systemId"
            ],
            "properties": {
              "secretKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "systemId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "BilingualFileApi2ResourceUploadBilingualFileRequestDtoV2": {
        "type": "object",
        "required": [
          "file"
        ],
        "properties": {
          "file": {
            "$ref": "#/components/schemas/MultipartFile"
          }
        }
      },
      "Booking": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "BookingSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "BoxConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BrazeConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "brazeRestEndpointUrl"
            ],
            "properties": {
              "apiKey": {
                "type": "string"
              },
              "brazeBlocksExportStatus": {
                "type": "string"
              },
              "brazeExportMode": {
                "type": "string"
              },
              "brazeImportMode": {
                "type": "string"
              },
              "brazeOriginalItemAttribute": {
                "type": "string"
              },
              "brazeRestEndpointUrl": {
                "type": "string"
              },
              "brazeTagExportSource": {
                "type": "string"
              },
              "brazeTagExportTranslate": {
                "type": "string"
              },
              "brazeTagObserved": {
                "type": "string"
              },
              "brazeTagUponImport": {
                "type": "string"
              }
            }
          }
        ]
      },
      "BrowseRequestDtoV1": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 50
          },
          "query": {
            "type": "string"
          },
          "queryLang": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "BrowseResponseListDtoV1": {
        "type": "object",
        "properties": {
          "searchResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConceptDtoV1"
            }
          }
        }
      },
      "BulkDeleteAnalyseDtoV1": {
        "type": "object",
        "required": [
          "analyses"
        ],
        "properties": {
          "analyses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "purge": {
            "type": "boolean",
            "description": "Default: false"
          }
        }
      },
      "BulkDeleteTmDtoV1": {
        "type": "object",
        "required": [
          "tms"
        ],
        "properties": {
          "purge": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "BulkEditAnalyseV2DtoV2": {
        "type": "object",
        "required": [
          "analyses"
        ],
        "properties": {
          "analyses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/UidReference"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          }
        }
      },
      "BusinessUnitDtoV1": {
        "type": "object",
        "required": [
          "id",
          "name",
          "uid"
        ],
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/ProtectedUserReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Name of the business unit"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "BusinessUnitEditDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the business unit; required, max 255 characters",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "BusinessUnitPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessUnitDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BusinessUnitReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "BusinessUnitReferenceV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "Buyer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractProjectDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "accessSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "analyseSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "archived": {
                "type": "boolean"
              },
              "archivedBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "businessUnit": {
                "$ref": "#/components/schemas/BusinessUnitReferenceV1"
              },
              "client": {
                "$ref": "#/components/schemas/ClientReferenceV1"
              },
              "costCenter": {
                "$ref": "#/components/schemas/CostCenterReferenceV1"
              },
              "createdBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "dateArchived": {
                "type": "string",
                "format": "date-time"
              },
              "fileHandoverSettings": {
                "$ref": "#/components/schemas/FileHandoverSettingsReferenceV1"
              },
              "financialSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "isPublishedOnJobBoard": {
                "type": "boolean",
                "description": "Default: false"
              },
              "note": {
                "type": "string"
              },
              "progress": {
                "$ref": "#/components/schemas/InternalProjectDtoProgressDtoV1"
              },
              "projectWorkflowSettings": {
                "$ref": "#/components/schemas/ProjectWorkflowSettingsReferenceV1"
              },
              "purchaseOrder": {
                "type": "string"
              },
              "qualityAssuranceSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "shared": {
                "type": "boolean",
                "description": "Default: false"
              },
              "status": {
                "type": "string",
                "description": "Null when the organization hides progress and status from non-linguist, non-bot callers.",
                "enum": [
                  "NEW",
                  "ASSIGNED",
                  "COMPLETED",
                  "ACCEPTED_BY_VENDOR",
                  "DECLINED_BY_VENDOR",
                  "COMPLETED_BY_VENDOR",
                  "CANCELLED"
                ]
              },
              "template": {
                "$ref": "#/components/schemas/ProjectTemplateReferenceV1"
              },
              "vendor": {
                "$ref": "#/components/schemas/VendorReferenceV1"
              },
              "vendorOwner": {
                "$ref": "#/components/schemas/USER"
              },
              "workflowSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Project-specific_workflow_step_instance"
                }
              }
            }
          }
        ]
      },
      "BuyerDtoV1": {
        "type": "object",
        "properties": {
          "defaultProjectOwner": {
            "$ref": "#/components/schemas/UserReferenceV3"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "vendorOrganization": {
            "$ref": "#/components/schemas/OrganizationReferenceV1"
          }
        }
      },
      "BuyerEditDtoV1": {
        "type": "object",
        "properties": {
          "defaultProjectOwner": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "BuyerPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuyerDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BuyerReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "CLASSIII": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "fieldId"
            ],
            "properties": {
              "contractId": {
                "type": "string",
                "description": "Field is optional if there is only one contract associated with the account",
                "minLength": 0,
                "maxLength": 255
              },
              "fieldId": {
                "type": "string",
                "description": "Professional field ID. Default: 1",
                "minLength": 0,
                "maxLength": 32
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "CLASSIIISecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "accessKey",
              "secretKey"
            ],
            "properties": {
              "accessKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secretKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "CONTENTFUL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "contentfulFileMonitoringStrategyType",
              "contentfulImportMode",
              "redirectUri"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "contentfulEnvironmentId": {
                "type": "string"
              },
              "contentfulFileMonitoringStrategyType": {
                "type": "string",
                "enum": [
                  "DEFAULT",
                  "MEMSOURCE_APP"
                ]
              },
              "contentfulImportMode": {
                "type": "string"
              },
              "contentfulMiddlemanAuthToken": {
                "type": "string"
              },
              "contentfulPreviewUrl": {
                "type": "string"
              },
              "contentfulSpaceId": {
                "type": "string"
              },
              "contentfulWorkflowExportSource": {
                "type": "string"
              },
              "contentfulWorkflowObserved": {
                "type": "string"
              },
              "contentfulWorkflowUponImport": {
                "type": "string"
              },
              "debugMode": {
                "type": "boolean"
              },
              "fallbackLang": {
                "type": "string"
              },
              "omitTranslatableFields": {
                "type": "string"
              },
              "omitTranslatableFieldsValues": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              },
              "usesFallbackLang": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "CONTENTFUL2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "redirectUri"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "contentful2DataCenter": {
                "type": "string"
              },
              "contentful2FieldsToOmit": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "contentful2Filters": {
                "$ref": "#/components/schemas/ContentfulFilters"
              },
              "contentful2FollowAliases": {
                "type": "boolean"
              },
              "contentful2IncludeAssets": {
                "type": "boolean"
              },
              "contentful2IncludeReferences": {
                "type": "boolean"
              },
              "contentful2IncludeTaxonomy": {
                "type": "boolean"
              },
              "contentful2MiddlemanAuthToken": {
                "type": "string"
              },
              "contentful2OrganizationId": {
                "type": "string"
              },
              "contentful2PreviewUrl": {
                "type": "string"
              },
              "contentful2SpacePreviewTokenMap": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "contentful2TagFilterListingStrategy": {
                "type": "string",
                "enum": [
                  "WITH_ALL_TAGS",
                  "WITH_AT_LEAST_ONE_TAG"
                ]
              },
              "contentful2Tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "contentful2UseApp": {
                "type": "boolean"
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CONTENTFULENTRYLEVEL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "contentfulFileMonitoringStrategyType",
              "redirectUri"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "contentfulEnvironmentId": {
                "type": "string"
              },
              "contentfulFileMonitoringStrategyType": {
                "type": "string",
                "enum": [
                  "DEFAULT",
                  "MEMSOURCE_APP"
                ]
              },
              "contentfulMiddlemanAuthToken": {
                "type": "string"
              },
              "contentfulPreviewUrl": {
                "type": "string"
              },
              "contentfulSpaceId": {
                "type": "string"
              },
              "contentfulWorkflowExportSource": {
                "type": "string"
              },
              "contentfulWorkflowObserved": {
                "type": "string"
              },
              "contentfulWorkflowUponImport": {
                "type": "string"
              },
              "debugMode": {
                "type": "boolean"
              },
              "omitTranslatableFields": {
                "type": "string"
              },
              "omitTranslatableFieldsValues": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CONTENTSTACK": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "contentStackAuthType",
              "contentStackRegion",
              "sourceLang"
            ],
            "properties": {
              "apiKey": {
                "type": "string"
              },
              "contentStackAuthType": {
                "type": "string",
                "enum": [
                  "MANAGEMENT_TOKEN",
                  "USER_CREDENTIALS"
                ]
              },
              "contentStackCustomUrl": {
                "type": "string"
              },
              "contentStackLanguagesFieldId": {
                "type": "string"
              },
              "contentStackManagementToken": {
                "type": "string"
              },
              "contentStackNonLocalizableBlocksUids": {
                "type": "string"
              },
              "contentStackRegion": {
                "type": "string",
                "enum": [
                  "NORTH_AMERICA",
                  "EUROPE",
                  "AZURE_NORTH_AMERICA",
                  "AZURE_EUROPE",
                  "GCP_NORTH_AMERICA",
                  "CUSTOM"
                ]
              },
              "contentStackTranslateLinkUrl": {
                "type": "boolean",
                "description": "Default false"
              },
              "contentStackTranslateTags": {
                "type": "boolean",
                "description": "Default false"
              },
              "contentStackTranslateUrls": {
                "type": "boolean",
                "description": "Default false"
              },
              "contentStackWFExportSource": {
                "type": "string"
              },
              "contentStackWFExportTranslate": {
                "type": "string"
              },
              "contentStackWFObserved": {
                "type": "string"
              },
              "contentStackWFUponImport": {
                "type": "string"
              },
              "forcedHttps": {
                "type": "boolean"
              },
              "password": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              },
              "userName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "CategoriesDtoV1": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "description": "Available engine categories and their types for the organization",
            "items": {
              "$ref": "#/components/schemas/CategoryDtoV1"
            }
          }
        },
        "description": "Per-organization catalogue of available MT engine types, grouped by category. Native (fully managed) engine types - category PREDEFINED and PREDEFINED_CUSTOMIZABLE - are gated by an org-level entitlement; an empty native category is a valid non-defect state for an organization not entitled to native engines, not evidence that engines are missing or were deleted."
      },
      "CategoryDtoV1": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "example": "PREDEFINED",
            "description": "Category identifier",
            "enum": [
              "PREDEFINED",
              "PREDEFINED_CUSTOMIZABLE",
              "CUSTOMIZABLE",
              "PRIVATE",
              "PARTNER_PREDEFINED",
              "GENERIC"
            ]
          },
          "types": {
            "type": "array",
            "description": "Engine types available in this category for the organization. An empty list for PREDEFINED/PREDEFINED_CUSTOMIZABLE means the organization is not entitled to native engines.",
            "items": {
              "$ref": "#/components/schemas/TypeDtoV1"
            }
          }
        },
        "description": "One MT engine category and the engine types available in it for the organization."
      },
      "CheckResponse": {
        "type": "object",
        "properties": {
          "misspelledWords": {
            "type": "array",
            "description": "List of misspelled words found in the text",
            "items": {
              "$ref": "#/components/schemas/MisspelledWord"
            }
          },
          "text": {
            "type": "string",
            "description": "The original submitted text"
          }
        }
      },
      "CleanedTransMemoriesDtoV1": {
        "type": "object",
        "required": [
          "uids"
        ],
        "properties": {
          "outputFormat": {
            "type": "string",
            "description": "Output format for the cleaned TM archive",
            "enum": [
              "TMX",
              "XLSX"
            ]
          },
          "preserveRatio": {
            "type": "number",
            "description": "Threshold ratio for preserving segments (0.0 exclusive to 1.0 inclusive, default 0.9)",
            "minimum": 0,
            "maximum": 1,
            "exclusiveMinimum": true,
            "exclusiveMaximum": false
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language locales to include; defaults to all TM target langs",
            "items": {
              "type": "string"
            }
          },
          "uids": {
            "type": "array",
            "description": "UIDs of translation memories to extract cleaned content from",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Request body for extractCleaned; specifies which TMs to clean and the output format"
      },
      "ClientDtoV1": {
        "type": "object",
        "required": [
          "displayNoteInProject",
          "id",
          "name",
          "uid"
        ],
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "displayNoteInProject": {
            "type": "boolean",
            "description": "When true, the client note is shown on projects associated with this client"
          },
          "externalId": {
            "type": "string",
            "description": "External identifier from an external system"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Human-readable name of the client; unique within the organization"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "note": {
            "type": "string",
            "description": "Client note"
          },
          "priceList": {
            "$ref": "#/components/schemas/PriceListReferenceV1"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "ClientEditDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "displayNoteInProject": {
            "type": "boolean",
            "description": "When true, the client note is shown on projects associated with this client"
          },
          "externalId": {
            "type": "string",
            "description": "External identifier; max 255 characters",
            "minLength": 0,
            "maxLength": 255
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/IdReference"
          },
          "note": {
            "type": "string",
            "description": "Note; max 4096 characters",
            "minLength": 0,
            "maxLength": 4096
          },
          "priceList": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "ClientPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ClientReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ClientReferenceV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "CloneJobsRequestDtoV1": {
        "type": "object",
        "required": [
          "jobPartTargetLangs"
        ],
        "properties": {
          "assignments": {
            "type": "array",
            "description": "only use for projects without workflows",
            "items": {
              "$ref": "#/components/schemas/ProvidersPerLanguage"
            }
          },
          "due": {
            "type": "string",
            "format": "date-time",
            "description": "only use for projects without workflows"
          },
          "jobPartTargetLangs": {
            "type": "array",
            "description": "Jobs to clone, each with the target languages of the clones",
            "items": {
              "$ref": "#/components/schemas/JobPartTargetLangsDtoV1"
            }
          },
          "keepSplit": {
            "type": "boolean",
            "description": "When true, the split structure of the source jobs is preserved in the clones"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          },
          "workflowSettings": {
            "type": "array",
            "description": "Per-workflow-step settings; when set, it has to contain an entry for every workflow step",
            "items": {
              "$ref": "#/components/schemas/CloneJobsRequestDtoWorkflowStepConfiguration"
            }
          }
        },
        "description": "Request to clone the selected jobs, optionally with per-workflow-step settings"
      },
      "CloneJobsRequestDtoWorkflowStepConfiguration": {
        "type": "object",
        "required": [
          "assignments"
        ],
        "properties": {
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProvidersPerLanguage"
            }
          },
          "due": {
            "type": "string",
            "format": "date-time",
            "description": "Use ISO 8601 date format."
          },
          "getProjectWorkflowStep": {
            "$ref": "#/components/schemas/ClosureProjectWorkflowStep"
          },
          "id": {
            "type": "string"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          }
        },
        "description": "Assignees, due date and notification settings for a single workflow step"
      },
      "CloneProjectDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string"
          }
        }
      },
      "CloneProjectTemplateDtoProjectTemplateV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the cloned project template"
          }
        }
      },
      "ClosedNmt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "model",
              "url"
            ],
            "properties": {
              "customization": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "model": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "ClosedNmtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "ClosureProjectWorkflowStep": {
        "type": "object",
        "properties": {
          "delegate": {
            "type": "object"
          },
          "directive": {
            "type": "integer",
            "format": "int32"
          },
          "maximumNumberOfParameters": {
            "type": "integer",
            "format": "int32"
          },
          "owner": {
            "type": "object"
          },
          "parameterTypes": {
            "type": "array",
            "items": {}
          },
          "resolveStrategy": {
            "type": "integer",
            "format": "int32"
          },
          "thisObject": {
            "type": "object"
          }
        }
      },
      "CollectionItemsDto": {
        "type": "object",
        "properties": {
          "dashboards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelDto"
            }
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelDto"
            }
          }
        }
      },
      "CommentDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/MentionableUserDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the comment was created"
          },
          "dateModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date the comment was last modified"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the comment"
          },
          "mentions": {
            "type": "array",
            "description": "\nList of mentions resolved from <@user:UID>/<@group:GROUPNAME> tags embedded in the comment text (see AddCommentDto.text). An empty list can mean either that no mention tags were present, or that mention-like text (e.g. plain \"@name\") failed to match the required tag format, or referenced a uid/groupName not returned by the \"List mentionable users\" endpoint for this job part — either way it was silently ignored, so a successful response does not guarantee an intended mention was delivered.\n",
            "items": {
              "$ref": "#/components/schemas/MentionDtoV1"
            }
          },
          "text": {
            "type": "string",
            "description": "Text content of the comment"
          }
        }
      },
      "CommonConversationDtoLQA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonConversationDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "lqaDescription": {
                "type": "string"
              },
              "references": {
                "$ref": "#/components/schemas/LQAReferences"
              }
            }
          }
        ]
      },
      "CommonConversationDtoSEGMENT_TARGET": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonConversationDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "references": {
                "$ref": "#/components/schemas/PlainReferences"
              }
            }
          }
        ]
      },
      "CommonConversationDtoV1": {
        "type": "object",
        "required": [
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "comments": {
            "type": "array",
            "description": "List of comments in the conversation",
            "items": {
              "$ref": "#/components/schemas/CommentDtoV1"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/MentionableUserDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was created"
          },
          "dateEdited": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was last edited by a user"
          },
          "dateModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was last modified"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether the conversation has been deleted"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the conversation"
          },
          "status": {
            "$ref": "#/components/schemas/StatusDtoV1"
          },
          "type": {
            "type": "string",
            "description": "Field references differs based on the Conversation Type."
          }
        }
      },
      "ComparedSegmentDto": {
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "enum": [
              "Miss",
              "Diff"
            ]
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ComparedSegmentsDto": {
        "type": "object",
        "properties": {
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComparedSegmentDto"
            }
          }
        }
      },
      "ConceptDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "terms": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/TermDtoV1"
              }
            }
          },
          "writable": {
            "type": "boolean"
          }
        }
      },
      "ConceptDtov2": {
        "type": "object",
        "properties": {
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "definition": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "subDomains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ConceptEditDtoV1": {
        "type": "object",
        "properties": {
          "conceptNote": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "definition": {
            "type": "string"
          },
          "domain": {
            "$ref": "#/components/schemas/UidReference"
          },
          "subdomains": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ConceptListReferenceV1": {
        "type": "object",
        "required": [
          "concepts"
        ],
        "properties": {
          "concepts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "ConceptListResponseDtoV1": {
        "type": "object",
        "properties": {
          "concepts": {
            "type": "array",
            "description": "List of concepts",
            "items": {
              "$ref": "#/components/schemas/ConceptWithMetadataDtoV1"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int64",
            "description": "Total number of concepts"
          }
        }
      },
      "ConceptWithMetadataDtoV1": {
        "type": "object",
        "properties": {
          "conceptNote": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "definition": {
            "type": "string"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string"
          },
          "subdomains": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubDomainReferenceV1"
            }
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ConcurrentRequestsDtoV1": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "description": "Current count of running concurrent requests"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Max number of allowed concurrent request, null value means no limit"
          }
        }
      },
      "ConnectionDto": {
        "type": "object",
        "properties": {
          "connected": {
            "type": "boolean"
          },
          "encryption": {
            "type": "string"
          },
          "encryptionMessage": {
            "type": "string"
          },
          "errorCode": {
            "type": "string"
          },
          "errorDesc": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "errorTitle": {
            "type": "string"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LanguageDto"
            }
          },
          "localToken": {
            "type": "string"
          },
          "marketoMetadata": {
            "$ref": "#/components/schemas/MarketoMetadataDto"
          },
          "sites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SiteDto"
            }
          },
          "sitesStructure": {
            "$ref": "#/components/schemas/SitesStructureDto"
          },
          "sourceLanguage": {
            "type": "string"
          },
          "targetLanguages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "targetLanguagesString": {
            "type": "string"
          }
        }
      },
      "ConnectorAsyncTaskStateDto": {
        "type": "object",
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the task was created"
          },
          "dateProcessed": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the task was processed, null if not yet processed"
          },
          "errorMessage": {
            "type": "string",
            "description": "Error message if the task failed, null otherwise"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric ID of the async task, encoded as a string"
          },
          "jobFileName": {
            "type": "string",
            "description": "Name of the file the task operates on"
          },
          "jobUid": {
            "type": "string",
            "description": "UID of the associated job, null if the task is not linked to a job"
          },
          "status": {
            "type": "string",
            "description": "Processing status of the async task",
            "enum": [
              "NEW",
              "SUCCESS",
              "ERROR",
              "CONVERTER_ERROR"
            ]
          },
          "targetLang": {
            "type": "string",
            "description": "Target language code"
          },
          "taskProcessingType": {
            "type": "string",
            "description": "Processing type of the task",
            "enum": [
              "GUI",
              "CJ",
              "APC",
              "API",
              "SUBMITTER_PORTAL"
            ]
          },
          "taskType": {
            "type": "string",
            "description": "Type of the task",
            "enum": [
              "DOWNLOAD",
              "UPLOAD",
              "REIMPORT",
              "REIMPORT_TARGET"
            ]
          }
        }
      },
      "ConnectorAsyncTaskStatesDto": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorAsyncTaskStateDto"
            }
          },
          "errorCount": {
            "type": "integer",
            "format": "int32",
            "description": "Number of tasks on this page with an error status"
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "projectName": {
            "type": "string",
            "description": "Name of the project the tasks belong to"
          },
          "projectUid": {
            "type": "string",
            "description": "UID of the project the tasks belong to"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "successCount": {
            "type": "integer",
            "format": "int32",
            "description": "Number of tasks on this page with a successful status"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ConnectorAuthCodeDtoV1": {
        "type": "object",
        "properties": {
          "cancelled": {
            "type": "boolean",
            "description": "True if the user cancelled the OAuth authorization flow"
          },
          "code": {
            "type": "string",
            "description": "OAuth authorization code returned by the provider; null until the OAuth flow completes"
          },
          "state": {
            "type": "string",
            "description": "OAuth state token; matches the `state` value returned by POST /connectorAuthData"
          }
        }
      },
      "ConnectorConfigurationDto": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "commitMessage": {
            "type": "string"
          },
          "defaultRemoteFolder": {
            "type": "string"
          },
          "encodedDefaultRemoteFolder": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the connector",
            "minLength": 0,
            "maxLength": 255
          },
          "sourceUrl": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "description": "Connector type. PHRASE connects this TMS organization to Phrase Strings (Job Sync), automatically routing translation jobs between the two products.",
            "enum": [
              "AEM_PLUGIN",
              "AMAZON_S3",
              "BITBUCKET",
              "BLUEPRINT",
              "BOX",
              "BRAZE",
              "BRAZE_MULTILANG",
              "CONTENTFULENTRYLEVEL",
              "CONTENTFUL",
              "CONTENTFUL2",
              "CONTENTSTACK",
              "DRUPAL_PLUGIN",
              "FTP",
              "GIT",
              "GITHUB",
              "GITHUB2",
              "GITLAB",
              "GOOGLE",
              "GOOGLE_DRIVE2",
              "HUBSPOT",
              "JOOMLA",
              "KENTICO_KONTENT",
              "MARKETO",
              "ONEDRIVE",
              "OPTIMIZELY",
              "SHAREPOINT",
              "PARDOT",
              "PHRASE",
              "SALESFORCE",
              "SFTP",
              "SITECORE",
              "TRIDION",
              "VERBIS",
              "WORDPRESS",
              "ZENDESK"
            ]
          }
        }
      },
      "ConnectorCreateResponseDto": {
        "type": "object",
        "properties": {
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the connector was created"
          },
          "id": {
            "type": "string",
            "description": "Internal identifier of the connector; an opaque string, not numeric"
          },
          "linkedAccount": {
            "type": "string",
            "description": "Name of the account linked to this connector on the remote service; null if unavailable. For connector types without a live connection test (e.g. PHRASE, GIT), this may be null while the connector is in the initial PENDING synchronization state and becomes populated once synchronization completes."
          },
          "localToken": {
            "type": "string",
            "description": "Backend token identifying this connector; required by connector backend calls"
          },
          "name": {
            "type": "string",
            "description": "Connector display name"
          },
          "status": {
            "type": "string",
            "description": "Connection status reported by the backend; null if the backend did not return a status. Fetched live from the connector backend on every call. A live remote connectivity test is only run for MAGENTO and TYPO3 connector types (see PATCH connector docs); for all other types this reflects the backend's stored credential/sync state rather than a live health check. For PHRASE (Strings job sync) and GIT connectors, PENDING is a valid, expected state meaning an initial synchronization is still in progress - typically right after connector creation - and is not itself an error; the status transitions to OK once synchronization completes."
          },
          "type": {
            "type": "string",
            "description": "Connector type identifier (e.g. FTP, GIT, GITHUB)"
          }
        }
      },
      "ConnectorDto": {
        "type": "object",
        "properties": {
          "automatedProjectSettings": {
            "type": "array",
            "description": "Automated project creation settings that use this connector",
            "items": {
              "$ref": "#/components/schemas/AutomatedProjectSettingsDto"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the connector was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/NameDto"
          },
          "id": {
            "type": "string",
            "description": "Internal identifier of the connector; an opaque string, not numeric"
          },
          "localToken": {
            "type": "string",
            "description": "Backend token identifying this connector; required by connector backend calls"
          },
          "name": {
            "type": "string",
            "description": "Display name of the connector"
          },
          "organization": {
            "$ref": "#/components/schemas/NameDto"
          },
          "type": {
            "type": "string",
            "description": "Connector type identifier (e.g. FTP, GIT, GITHUB)",
            "enum": [
              "AEM_PLUGIN",
              "AMAZON_S3",
              "AZURE",
              "BITBUCKET",
              "BITBUCKETSERVER",
              "BLUEPRINT",
              "BOX",
              "BRAZE",
              "BRAZE_MULTILANG",
              "CONFLUENCE",
              "CONTENTFUL",
              "CONTENTFULENTRYLEVEL",
              "CONTENTFUL2",
              "CONTENTSTACK",
              "DROPBOX",
              "DRUPAL",
              "DRUPAL_PLUGIN",
              "FTP",
              "GIT",
              "GITHUB",
              "GITHUB2",
              "GITLAB",
              "GOOGLE",
              "GOOGLE_DRIVE2",
              "HELPSCOUT",
              "HUBSPOT",
              "JOOMLA",
              "KENTICO",
              "KENTICO_KONTENT",
              "MAGENTO",
              "MARKETO",
              "ONEDRIVE",
              "OPTIMIZELY",
              "PARDOT",
              "PHRASE",
              "SALESFORCE",
              "SFTP",
              "SHAREPOINT",
              "SITECORE",
              "TRIDION",
              "TYPO3",
              "VERBIS",
              "WORDPRESS",
              "ZENDESK"
            ]
          }
        }
      },
      "ConnectorErrorDetailDto": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "messageCode": {
            "type": "string"
          },
          "skipPrefix": {
            "type": "boolean"
          }
        }
      },
      "ConnectorErrorsDto": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorErrorDetailDto"
            }
          }
        }
      },
      "ConnectorListDto": {
        "type": "object",
        "properties": {
          "connectors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConnectorDto"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ContentGroupDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the content group"
          },
          "name": {
            "type": "string",
            "description": "Display name of the content group"
          }
        },
        "description": "Content group with its unique identifier and display name"
      },
      "ContentfulFilters": {
        "type": "object",
        "properties": {
          "filterEntryByContentType": {
            "$ref": "#/components/schemas/FilterEntryByContentType"
          },
          "filterReferencesByDepth": {
            "$ref": "#/components/schemas/FilterReferencesByDepth"
          },
          "filterReferencesByEntryContentType": {
            "$ref": "#/components/schemas/FilterReferencesByEntryContentType"
          },
          "filterReferencesByEntryTag": {
            "$ref": "#/components/schemas/FilterReferencesByEntryTag"
          },
          "filterReferencesByFieldId": {
            "$ref": "#/components/schemas/FilterReferencesByFieldId"
          }
        }
      },
      "ContinuousAnalysesSettingsV3DtoV3": {
        "type": "object",
        "properties": {
          "analyzeByLanguage": {
            "type": "boolean",
            "description": "When true, the analysis is broken down by language"
          },
          "excludeLocked": {
            "type": "boolean",
            "description": "When true, locked segments are excluded from the analysis"
          },
          "excludeNumbers": {
            "type": "boolean",
            "description": "When true, numbers are excluded from the analysis"
          },
          "includeMachineTranslationMatches": {
            "type": "boolean",
            "description": "When true, machine translation matches are included in the analysis"
          },
          "includeNonTranslatables": {
            "type": "boolean",
            "description": "When true, non-translatable segments are included in the analysis"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the analysis"
          },
          "internalFuzzyMatches": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches (homogeneity) are counted in the analysis"
          },
          "namingPattern": {
            "type": "string",
            "description": "Pattern used to name the created analyses. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "separateInternalFuzzyMatches": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches are reported separately"
          }
        }
      },
      "ContinuousJobInfoDtoV1": {
        "type": "object",
        "properties": {
          "dateUpdated": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ConversationListDtoV1": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "description": "List of conversations of all types for the job",
            "items": {
              "$ref": "#/components/schemas/CommonConversationDtoV1"
            }
          }
        }
      },
      "ConversationPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CommonConversationDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "description": "A paged list of conversations of all types matching the project search criteria"
      },
      "CostCenterDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "CostCenterEditDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Cost center name. Required on create (omitting causes 400); on update,\nomit or pass null to leave unchanged. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "CostCenterPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CostCenterDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CostCenterReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "Cotoha": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "appId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 64
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "tmIds": {
                "type": "string",
                "description": "Comma separated list of IDs of translation memories created in MiraiTranslate",
                "minLength": 0,
                "maxLength": 255
              },
              "udIds": {
                "type": "string",
                "description": "Comma separated list of IDs of user dictionaries created in MiraiTranslate",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "userLog": {
                "type": "string",
                "minLength": 0,
                "maxLength": 64
              }
            }
          }
        ]
      },
      "CotohaSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "profile"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "CreateAnalyseAsyncV2DtoV2": {
        "type": "object",
        "properties": {
          "analyzeByLanguage": {
            "type": "boolean",
            "example": false,
            "description": "When true, creates one analysis per target language instead of a single combined analysis. Default: false."
          },
          "analyzeByProvider": {
            "type": "boolean",
            "example": false,
            "description": "When true, creates one analysis per assigned provider instead of a single combined analysis. Default: false."
          },
          "callbackUrl": {
            "type": "string"
          },
          "compareWorkflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Required for type=Compare",
            "minimum": 1,
            "maximum": 15
          },
          "countSourceUnits": {
            "type": "boolean",
            "description": "Whether the analysis counts source or target word/character units. When true, counts are based on the source language content; when false, counts are based on the target language content. Default: true"
          },
          "includeConfirmedSegments": {
            "type": "boolean",
            "description": "When true, confirmed (translated) segments are included in the counts. Default: true"
          },
          "includeFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches (segments that fuzzily repeat within the analyzed content) are included in the counts. Default: true"
          },
          "includeLockedSegments": {
            "type": "boolean",
            "description": "When true, locked segments are included in the counts. Default: true"
          },
          "includeMachineTranslationMatches": {
            "type": "boolean",
            "description": "When true, machine translation matches are included in the counts. Default: false. Works only for type=PreAnalyse."
          },
          "includeNonTranslatables": {
            "type": "boolean",
            "description": "When true, non-translatable segments are included in the counts. Default: false. Works only for type=PreAnalyse."
          },
          "includeNotConfirmedSegments": {
            "type": "boolean",
            "description": "When true, not confirmed segments are included in the counts. Default: true"
          },
          "includeNumbers": {
            "type": "boolean",
            "description": "When true, number-only segments are included in the counts. Default: true"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the counts. Default: true. Works only for type=PreAnalyse."
          },
          "jobFilter": {
            "$ref": "#/components/schemas/JobFilterDtoInternalV1"
          },
          "jobs": {
            "type": "array",
            "description": "Job uids of jobs from the same project",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 50000,
            "minItems": 1
          },
          "machineTranslatePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against machine translation matches. Default: false. Works only for type=PostAnalyse."
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/IdReference"
          },
          "nonTranslatablePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance for non-translatable segments. Default: false. Works only for type=PostAnalyse."
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "separateFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy repetitions are counted as a separate category instead of being merged into the Repetitions count. Default: false"
          },
          "skipMtScoreThreshold": {
            "type": "number",
            "format": "double",
            "description": "Used only for type=PreAnalyse. Threshold above which the MT suggestions are not used. Default: value from PreTranslate settings"
          },
          "transMemoryPostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against translation memory matches. Default: false. Works only for type=PostAnalyse."
          },
          "type": {
            "type": "string",
            "description": "Analysis type: PreAnalyse (source segments analysis), PostAnalyse (machine translation post-editing analysis) or Compare (compares word/character counts across workflow levels). Default: PreAnalyse",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "Compare"
            ]
          },
          "useProjectAnalysisSettings": {
            "type": "boolean",
            "description": "Default: false. Use default project settings. Will be overwritten with setting sent\n        in the API call."
          }
        }
      },
      "CreateAnalyseListAsyncDtoV1": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "callbackUrl": {
            "type": "string",
            "description": "URL called once the asynchronous analysis creation finishes"
          },
          "compareWorkflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Required for type=Compare",
            "minimum": 1,
            "maximum": 15
          },
          "countSourceUnits": {
            "type": "boolean",
            "description": "Whether the analysis counts source or target word/character units. When true, counts are based on the source language content; when false, counts are based on the target language content. Default: true"
          },
          "includeConfirmedSegments": {
            "type": "boolean",
            "description": "When true, confirmed (translated) segments are included in the counts. Default: true"
          },
          "includeFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches (segments that fuzzily repeat within the analyzed content) are included in the counts. Default: true"
          },
          "includeLockedSegments": {
            "type": "boolean",
            "description": "When true, locked segments are included in the counts. Default: true"
          },
          "includeMachineTranslationMatches": {
            "type": "boolean",
            "description": "When true, machine translation matches are included in the counts. Default: false. Works only for type=PreAnalyse."
          },
          "includeNonTranslatables": {
            "type": "boolean",
            "description": "When true, non-translatable segments are included in the counts. Default: false. Works only for type=PreAnalyse."
          },
          "includeNumbers": {
            "type": "boolean",
            "description": "When true, number-only segments are included in the counts. Default: true"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the counts. Default: true. Works only for type=PreAnalyse."
          },
          "jobs": {
            "type": "array",
            "description": "Job uids of jobs from the same project",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "machineTranslatePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against machine translation matches. Default: false. Works only for type=PostAnalyse."
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/IdReference"
          },
          "nonTranslatablePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance for non-translatable segments. Default: false. Works only for type=PostAnalyse."
          },
          "separateFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy repetitions are counted as a separate category instead of being merged into the Repetitions count. Default: false"
          },
          "skipMtScoreThreshold": {
            "type": "number",
            "format": "double",
            "description": "Used only for type=PreAnalyse. Threshold above which the MT suggestions are not used. Default: value from PreTranslate settings"
          },
          "transMemoryPostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against translation memory matches. Default: false. Works only for type=PostAnalyse."
          },
          "type": {
            "type": "string",
            "description": "Analysis type: PreAnalyse (source segments analysis), PostAnalyse (machine translation post-editing analysis) or Compare (compares word/character counts across workflow levels). Default: PreAnalyse",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "Compare"
            ]
          },
          "useProjectAnalysisSettings": {
            "type": "boolean",
            "description": "Default: false. Use default project settings. Will be overwritten with setting sent\n        in the API call."
          }
        }
      },
      "CreateCustomFieldDtoV1": {
        "type": "object",
        "required": [
          "allowedEntities",
          "name",
          "type"
        ],
        "properties": {
          "allowedEntities": {
            "type": "array",
            "description": "Entity (project or job) the custom field can be assigned to. Currently exactly one entity must be supplied",
            "items": {
              "type": "string",
              "enum": [
                "PROJECT",
                "JOB"
              ]
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the custom field, at most 500 characters",
            "minLength": 0,
            "maxLength": 500
          },
          "name": {
            "type": "string",
            "description": "Name of the custom field, at most 255 characters",
            "minLength": 0,
            "maxLength": 255
          },
          "options": {
            "type": "array",
            "description": "Option values for the field. Required and used only for SINGLE_SELECT and MULTI_SELECT fields; ignored for other types",
            "items": {
              "type": "string"
            }
          },
          "required": {
            "type": "boolean",
            "description": "Whether the custom field must be filled in for its allowed entities"
          },
          "type": {
            "type": "string",
            "description": "Type of the custom field",
            "enum": [
              "MULTI_SELECT",
              "SINGLE_SELECT",
              "STRING",
              "NUMBER",
              "URL",
              "DATE"
            ]
          }
        }
      },
      "CreateCustomFieldInstanceDtoV1": {
        "type": "object",
        "required": [
          "customField"
        ],
        "properties": {
          "customField": {
            "$ref": "#/components/schemas/UidReference"
          },
          "selectedOptions": {
            "type": "array",
            "description": "Selected option UIDs for option-type custom fields; mutually exclusive with value",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "value": {
            "type": "string",
            "description": "Text value for text-type custom fields; mutually exclusive with selectedOptions; max 4096 chars",
            "minLength": 0,
            "maxLength": 4096
          }
        },
        "description": "Custom field instance to create"
      },
      "CreateCustomFieldInstancesDtoV1": {
        "type": "object",
        "properties": {
          "customFieldInstances": {
            "type": "array",
            "description": "List of custom field instances to create",
            "items": {
              "$ref": "#/components/schemas/CreateCustomFieldInstanceDtoV1"
            }
          }
        },
        "description": "Batch of custom field instances to create"
      },
      "CreateCustomFileTypeDtoV1": {
        "type": "object",
        "required": [
          "filenamePattern",
          "name",
          "type"
        ],
        "properties": {
          "fileImportSettings": {
            "$ref": "#/components/schemas/FileImportSettingsCreateDtoV1"
          },
          "filenamePattern": {
            "type": "string",
            "description": "Regular expression matched against file names to detect this custom file type"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom file type"
          },
          "type": {
            "type": "string",
            "description": "Underlying file format",
            "enum": [
              "html",
              "json",
              "xml",
              "multiling_xml",
              "txt"
            ]
          }
        }
      },
      "CreateEditAutomatedProjectCreationV3DtoV3": {
        "type": "object",
        "required": [
          "monitoredFolders",
          "name",
          "selectedTargetLangs",
          "translationExports"
        ],
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When true, the automated project creation is active and runs on its schedule"
          },
          "continuousProject": {
            "type": "boolean",
            "description": "When true, files are imported into a single continuously updated project instead of creating a new project on every run"
          },
          "createProjectAutomation": {
            "$ref": "#/components/schemas/CreateEditCreateProjectAutomationV3DtoV3"
          },
          "frequency": {
            "$ref": "#/components/schemas/AutomationProjectCreationFrequencyV3DtoV3"
          },
          "initialIterationMode": {
            "type": "string",
            "description": "Mode used for the first run of the automated project creation",
            "enum": [
              "DRY_RUN",
              "FULL_RUN"
            ]
          },
          "monitoredFolders": {
            "type": "array",
            "description": "Remote folders to monitor. Must contain at least one folder.",
            "items": {
              "$ref": "#/components/schemas/CreateEditMonitoredFolderV3DtoV3"
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the automated project creation settings. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "notifyOnNeedsAttentionEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified by email and in-app whenever this automated project creation needs attention"
          },
          "projectCreationMode": {
            "type": "string",
            "description": "How files are grouped into created projects",
            "enum": [
              "ALL_FILES_IN_SINGLE_PROJECT",
              "BY_FOLDER",
              "EACH_FILE_IN_SEPARATE_PROJECT"
            ]
          },
          "projectTemplateMaxWfStep": {
            "type": "integer",
            "format": "int32",
            "description": "Highest workflow step of the project template to use"
          },
          "selectedTargetLangs": {
            "type": "array",
            "description": "Target language codes of the created projects. At least one must be selected.",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "sourceUpdateAutomation": {
            "$ref": "#/components/schemas/CreateEditSourceUpdateAutomationV3DtoV3"
          },
          "targetUpdateAutomation": {
            "$ref": "#/components/schemas/CreateEditTargetUpdateAutomationV3DtoV3"
          },
          "translationExports": {
            "type": "array",
            "description": "Translation-export configuration entries",
            "items": {
              "$ref": "#/components/schemas/TRANSLATION_EXPORT_ENTRY"
            }
          },
          "webhookToken": {
            "type": "string",
            "description": "Webhook token that triggers the automated project creation. Either frequency or webhookToken must be provided.\n\nMint a valid value with `POST /api2/v1/automatedProjects/generateWebhook` (empty body, authenticated) and pass the returned `webhookToken` value here - this is the only supported way to obtain one; a self-generated value is rejected with `401 INVALID_WEBHOOK_TOKEN`. The minted token is accepted identically by the webhookToken field on the create/update endpoints of all API versions (`/api2/v1`, `/api2/v2`, `/api2/v3`)."
          }
        }
      },
      "CreateEditContinuousAnalysesSettingsV3DtoV3": {
        "type": "object",
        "properties": {
          "analyzeByLanguage": {
            "type": "boolean",
            "description": "When true, the analysis is broken down by language"
          },
          "excludeLocked": {
            "type": "boolean",
            "description": "When true, locked segments are excluded from the analysis"
          },
          "excludeNumbers": {
            "type": "boolean",
            "description": "When true, numbers are excluded from the analysis"
          },
          "includeMachineTranslationMatches": {
            "type": "boolean",
            "description": "When true, machine translation matches are included in the analysis"
          },
          "includeNonTranslatables": {
            "type": "boolean",
            "description": "When true, non-translatable segments are included in the analysis"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the analysis"
          },
          "internalFuzzyMatches": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches (homogeneity) are counted in the analysis"
          },
          "namingPattern": {
            "type": "string",
            "description": "Pattern used to name the created analyses. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "separateInternalFuzzyMatches": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches are reported separately"
          }
        }
      },
      "CreateEditCreateProjectAutomationV3DtoV3": {
        "type": "object",
        "properties": {
          "applyProjectDueDateToJobsEnabled": {
            "type": "boolean",
            "description": "When true, the calculated project due date is also applied to its jobs"
          },
          "assignProvidersEnabled": {
            "type": "boolean",
            "description": "When true, providers are automatically assigned to the created project"
          },
          "calculateDueDateEnabled": {
            "type": "boolean",
            "description": "When true, the project due date is calculated using the configured due date scheme"
          },
          "createAnalysesEnabled": {
            "type": "boolean",
            "description": "When true, analyses are automatically created for the created project"
          },
          "createAnalysesWorkflowNumber": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number the created analyses are based on. Value between 1 and 999.",
            "minimum": 1,
            "maximum": 999
          },
          "createBuyerQuotesEnabled": {
            "type": "boolean",
            "description": "When true, buyer quotes are automatically created for the created project"
          },
          "createProviderQuotesEnabled": {
            "type": "boolean",
            "description": "When true, provider quotes are automatically created for the created project"
          },
          "dueDateSchemeUid": {
            "type": "string",
            "description": "Identifier of the due date scheme used to calculate the project due date"
          },
          "notifyProjectOwnerEmailTemplateUid": {
            "type": "string",
            "description": "Identifier of the email template used to notify the project owner"
          },
          "notifyProjectOwnerEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified after the project is created"
          }
        }
      },
      "CreateEditDiscountSchemeDtoV2": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "defaultScheme": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "rates": {
            "$ref": "#/components/schemas/NetRateSettings"
          },
          "workflowStepNetSchemes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NetRateSchemeWorkflowStepCreate"
            }
          }
        }
      },
      "CreateEditDueDateSchemeDtoV1": {
        "type": "object",
        "required": [
          "name",
          "officeHours",
          "quota"
        ],
        "properties": {
          "afterDelivery": {
            "$ref": "#/components/schemas/DueDateDeliveryRuleDtoV1"
          },
          "afterStart": {
            "$ref": "#/components/schemas/DueDateStartRuleDtoV1"
          },
          "deadlineExtensions": {
            "type": "array",
            "description": "Deadline extension rules",
            "items": {
              "$ref": "#/components/schemas/DeadlineExtensionDtoV1"
            }
          },
          "duringDelivery": {
            "$ref": "#/components/schemas/DueDateDeliveryRuleDtoV1"
          },
          "duringStart": {
            "$ref": "#/components/schemas/DueDateStartRuleDtoV1"
          },
          "isDefault": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "Name of the due date scheme",
            "minLength": 0,
            "maxLength": 255
          },
          "nonBusinessDays": {
            "type": "array",
            "description": "Dates excluded as non-business days",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "officeHours": {
            "$ref": "#/components/schemas/OfficeHoursDtoV1"
          },
          "quota": {
            "$ref": "#/components/schemas/QuotaDtoV1"
          },
          "workingDays": {
            "type": "array",
            "description": "Days of week considered working days. Empty means every day.",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "MONDAY",
                "TUESDAY",
                "WEDNESDAY",
                "THURSDAY",
                "FRIDAY",
                "SATURDAY",
                "SUNDAY"
              ]
            }
          }
        },
        "description": "Request body for creating or editing a due date scheme. Represents the full due date scheme state - fields left out are reset to their default value."
      },
      "CreateEditMonitoredFolderV3DtoV3": {
        "type": "object",
        "required": [
          "folderNames",
          "humanReadableFolderPath",
          "localToken",
          "projectTemplateUid",
          "remoteFolder"
        ],
        "properties": {
          "fileNameRegex": {
            "type": "string",
            "description": "Regular expression used to filter which file names are processed. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "folderNames": {
            "type": "array",
            "description": "Folder name segments forming the path of the monitored folder",
            "items": {
              "type": "string"
            }
          },
          "humanReadableFolderPath": {
            "type": "string",
            "description": "Human-readable path of the monitored folder"
          },
          "includeSubfolders": {
            "type": "boolean",
            "description": "When true, files in subfolders of the monitored folder are also processed"
          },
          "localToken": {
            "type": "string",
            "description": "Token of the connector that provides access to the monitored remote storage"
          },
          "moveToProcessedSubfolder": {
            "type": "boolean",
            "description": "When true, processed files are moved to the folder named by processedSubfolder"
          },
          "processedSubfolder": {
            "type": "string",
            "description": "Name of the subfolder processed files are moved into; required when moveToProcessedSubfolder is true"
          },
          "projectTemplateUid": {
            "type": "string",
            "description": "Identifier of the project template used to create projects from this folder"
          },
          "remoteFolder": {
            "type": "string",
            "description": "Path of the monitored remote folder. For most connectors this is a plain path string, but some connector/folder-type combinations use a structured, JSON-encoded value instead - for example, the Braze connector's CAMPAIGN_DIRECTORY folder type expects a value shaped like {\"pathType\":\"CAMPAIGN_DIRECTORY\"} rather than a plain path. Use the exact value returned by the connector's folder browsing endpoint; do not construct this value manually."
          },
          "selectedMonitoredFiles": {
            "type": "array",
            "description": "Specific files within the folder to monitor instead of monitoring all files",
            "items": {
              "$ref": "#/components/schemas/MonitoredFileDto"
            }
          }
        }
      },
      "CreateEditSourceUpdateAutomationV3DtoV3": {
        "type": "object",
        "required": [
          "createAnalysesType"
        ],
        "properties": {
          "applyProjectDueDateToJobsEnabled": {
            "type": "boolean",
            "description": "When true, the recalculated project due date is also applied to its jobs"
          },
          "calculateDueDateEnabled": {
            "type": "boolean",
            "description": "When true, the project due date is recalculated using the configured due date scheme"
          },
          "continuousAnalysesSettings": {
            "$ref": "#/components/schemas/CreateEditContinuousAnalysesSettingsV3DtoV3"
          },
          "createAnalysesEnabled": {
            "type": "boolean",
            "description": "When true, analyses are created when the source content changes"
          },
          "createAnalysesType": {
            "type": "string",
            "description": "Type of analysis created on source update",
            "enum": [
              "DEFAULT",
              "POST_EDITING",
              "CONTINUOUS"
            ]
          },
          "createAnalysesWorkflowNumber": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number the created analyses are based on. Value between 1 and 999.",
            "minimum": 1,
            "maximum": 999
          },
          "createBuyerQuotesEnabled": {
            "type": "boolean",
            "description": "When true, buyer quotes are created when the source content changes"
          },
          "createProviderQuotesEnabled": {
            "type": "boolean",
            "description": "When true, provider quotes are created when the source content changes"
          },
          "dueDateSchemeUid": {
            "type": "string",
            "description": "Identifier of the due date scheme used to recalculate the project due date"
          },
          "notifyProjectOwnerEmailTemplateUid": {
            "type": "string",
            "description": "Identifier of the email template used to notify the project owner"
          },
          "notifyProjectOwnerEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified when the source content changes"
          },
          "reopenWorkflowEnabled": {
            "type": "boolean",
            "description": "When true, the workflow is reopened when the source content changes"
          },
          "reopenWorkflowNumberAndLater": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number from which (and later) the workflow is reopened. Value between 1 and 999.",
            "minimum": 1,
            "maximum": 999
          }
        }
      },
      "CreateEditTargetUpdateAutomationV3DtoV3": {
        "type": "object",
        "properties": {
          "manualReviewEnabled": {
            "type": "boolean",
            "description": "When true, the target update is held for manual review before being applied"
          },
          "notifyProjectOwnerEmailTemplateUid": {
            "type": "string",
            "description": "Identifier of the email template used to notify the project owner"
          },
          "notifyProjectOwnerEnabled": {
            "type": "boolean",
            "description": "When true, the project owner is notified when the target content changes"
          },
          "targetUpdateEnabled": {
            "type": "boolean",
            "description": "When true, the target file is updated when its content changes"
          }
        }
      },
      "CreateLqaConversationDtoV2": {
        "type": "object",
        "required": [
          "references"
        ],
        "properties": {
          "lqaDescription": {
            "type": "string",
            "description": "Description of the LQA issue"
          },
          "references": {
            "$ref": "#/components/schemas/LQAReferences"
          }
        }
      },
      "CreateLqaProfileDtoV1": {
        "type": "object",
        "required": [
          "errorCategories",
          "name"
        ],
        "properties": {
          "errorCategories": {
            "$ref": "#/components/schemas/ErrorCategoriesDto"
          },
          "name": {
            "type": "string",
            "description": "Name of the LQA profile",
            "minLength": 1,
            "maxLength": 255
          },
          "passFailThreshold": {
            "$ref": "#/components/schemas/PassFailThresholdDto"
          },
          "penaltyPoints": {
            "$ref": "#/components/schemas/PenaltyPointsDto"
          }
        }
      },
      "CreateOrUpdateOrgEmailTemplateDtoV1": {
        "type": "object",
        "required": [
          "body",
          "name",
          "subject",
          "type"
        ],
        "properties": {
          "bccAddress": {
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "Body content of the email"
          },
          "ccAddress": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the email template, shown in the template list",
            "minLength": 1,
            "maxLength": 255
          },
          "subject": {
            "type": "string",
            "description": "Subject line of the email"
          },
          "type": {
            "type": "string"
          }
        },
        "description": "Fields used to create a new email template or replace an existing one"
      },
      "CreatePlainConversationDtoV1": {
        "type": "object",
        "required": [
          "references"
        ],
        "properties": {
          "comment": {
            "$ref": "#/components/schemas/AddCommentDtoV1"
          },
          "references": {
            "$ref": "#/components/schemas/PlainReferences"
          }
        }
      },
      "CreateProjectFromTemplateAsyncV2DtoV2": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "callbackUrl": {
            "type": "string",
            "description": "URL to call when the async project creation completes"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date for the project"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Internal note for the project"
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code; falls back to the template value when omitted"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language codes; fall back to the template values when omitted",
            "items": {
              "type": "string"
            }
          },
          "workflowSteps": {
            "type": "array",
            "description": "Workflow steps to override those defined in the template",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          }
        }
      },
      "CreateProjectFromTemplateV2DtoV2": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date for the project"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Internal note for the project"
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code; falls back to the template value when omitted"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language codes; fall back to the template values when omitted",
            "items": {
              "type": "string"
            }
          },
          "workflowSteps": {
            "type": "array",
            "description": "Workflow steps to override those defined in the template",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          }
        }
      },
      "CreateProjectTemplateReferenceFileNoteDtoProjectTemplateV1": {
        "type": "object",
        "required": [
          "note"
        ],
        "properties": {
          "note": {
            "type": "string"
          }
        }
      },
      "CreateProjectV3DtoV3": {
        "type": "object",
        "required": [
          "name",
          "sourceLang",
          "targetLangs"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "customFields": {
            "type": "array",
            "description": "Custom fields for project",
            "items": {
              "$ref": "#/components/schemas/CustomFieldInstanceApiDtoV2"
            }
          },
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "fileHandover": {
            "type": "boolean",
            "description": "When true, enables file handover for the project"
          },
          "lqaProfiles": {
            "type": "array",
            "description": "Lqa profiles that will be added to workflow steps",
            "items": {
              "$ref": "#/components/schemas/LqaProfilesForWsV2DtoV2"
            }
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "propagateTranslationsToLowerWfDuringUpdateSource": {
            "type": "boolean",
            "description": "When true, propagates translations to lower workflow steps during source update"
          },
          "purchaseOrder": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "sourceLang": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "workflowSteps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          }
        }
      },
      "CreateReferenceFileNoteDtoV1": {
        "type": "object",
        "required": [
          "note"
        ],
        "properties": {
          "note": {
            "type": "string"
          }
        }
      },
      "CreateServiceDtoV1": {
        "type": "object",
        "required": [
          "name",
          "publicName",
          "sourceLangs",
          "targetLangs",
          "type"
        ],
        "properties": {
          "billingUnit": {
            "type": "string",
            "description": "Billing unit for the service. Uses the organization default when omitted.",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          },
          "generationMode": {
            "type": "string",
            "description": "Controls when quotes and analyses are generated. Uses the service default when omitted.",
            "enum": [
              "ANALYSIS_AND_QUOTE",
              "ANALYSIS",
              "NONE"
            ]
          },
          "name": {
            "type": "string",
            "description": "Internal name of the service",
            "minLength": 0,
            "maxLength": 255
          },
          "publicName": {
            "type": "string",
            "description": "Public-facing name of the service",
            "minLength": 0,
            "maxLength": 255
          },
          "sourceLangs": {
            "type": "array",
            "description": "BCP 47 source language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "targetLangs": {
            "type": "array",
            "description": "BCP 47 target language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "description": "Service type",
            "enum": [
              "ProfessionalTranslation"
            ]
          }
        },
        "description": "Request body for creating a service"
      },
      "CreateTbCustomFieldDtoV1": {
        "type": "object",
        "required": [
          "fieldName",
          "level",
          "type"
        ],
        "properties": {
          "fieldName": {
            "type": "string",
            "example": "Usage notes",
            "description": "Name of the custom field",
            "minLength": 1,
            "maxLength": 100
          },
          "level": {
            "type": "string",
            "example": "TERM",
            "description": "Level of the custom field",
            "enum": [
              "TERM",
              "CONCEPT"
            ]
          },
          "type": {
            "type": "string",
            "example": "SINGLE_SELECT",
            "description": "Type of the custom field",
            "enum": [
              "STRING",
              "NUMBER",
              "DATE",
              "BOOLEAN",
              "SINGLE_SELECT",
              "MULTI_SELECT",
              "URL"
            ]
          },
          "values": {
            "type": "array",
            "description": "Possible values for select type fields. Required for type SINGLE_SELECT and MULTI_SELECT. Each value must be not blank and less then 100 characters length",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 0
          }
        },
        "description": "DTO for creating a new term base custom field"
      },
      "CreateTermsDtoV1": {
        "type": "object",
        "required": [
          "sourceTerm",
          "targetTerm"
        ],
        "properties": {
          "sourceTerm": {
            "$ref": "#/components/schemas/TermCreateByJobDtoV1"
          },
          "targetTerm": {
            "$ref": "#/components/schemas/TermCreateByJobDtoV1"
          }
        }
      },
      "CreateVendorDtoV1": {
        "type": "object",
        "required": [
          "vendorToken"
        ],
        "properties": {
          "clients": {
            "type": "array",
            "description": "Clients scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "domains": {
            "type": "array",
            "description": "Domains scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/UidReference"
          },
          "priceList": {
            "$ref": "#/components/schemas/UidReference"
          },
          "sourceLocales": {
            "type": "array",
            "description": "Source locale codes this vendor works with",
            "items": {
              "type": "string"
            }
          },
          "subDomains": {
            "type": "array",
            "description": "Sub-domains scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "targetLocales": {
            "type": "array",
            "description": "Target locale codes this vendor works with",
            "items": {
              "type": "string"
            }
          },
          "vendorToken": {
            "type": "string",
            "description": "Vendor token of the organization to connect as a vendor"
          },
          "workflowSteps": {
            "type": "array",
            "description": "Workflow steps scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "CreateWebEditorLinkDtoV2": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Maximum supported number of jobs is 260",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 2147483647,
            "minItems": 1
          }
        }
      },
      "CreateWebHookDtoV2": {
        "type": "object",
        "required": [
          "events",
          "url"
        ],
        "properties": {
          "events": {
            "type": "array",
            "description": "One or more events that trigger this webhook",
            "items": {
              "type": "string",
              "enum": [
                "JOB_STATUS_CHANGED",
                "JOB_CREATED",
                "JOB_DELETED",
                "JOB_UNSHARED",
                "JOB_ASSIGNED",
                "JOB_DUE_DATE_CHANGED",
                "JOB_UPDATED",
                "JOB_TARGET_UPDATED",
                "JOB_EXPORTED",
                "JOB_UNEXPORTED",
                "JOB_AUTO_LQA_FINISHED",
                "JOB_METADATA_UPDATED",
                "JOB_CUSTOM_FIELDS_UPDATED",
                "PROJECT_CREATED",
                "PROJECT_DELETED",
                "PROJECT_UNSHARED",
                "PROJECT_STATUS_CHANGED",
                "PROJECT_DUE_DATE_CHANGED",
                "SHARED_PROJECT_ASSIGNED",
                "PROJECT_METADATA_UPDATED",
                "PRE_TRANSLATION_FINISHED",
                "ANALYSIS_CREATED",
                "CONTINUOUS_JOB_UPDATED",
                "PROJECT_TEMPLATE_CREATED",
                "PROJECT_TEMPLATE_UPDATED",
                "PROJECT_TEMPLATE_DELETED",
                "RAW_MT_CONVERTER_IMPORT_FINISHED",
                "RAW_MT_PRE_TRANSLATION_FINISHED",
                "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                "TERM_BASE_TERM_CREATED",
                "TERM_BASE_TERM_UPDATED",
                "TERM_BASE_TERM_DELETED",
                "TERM_BASE_CONCEPT_CREATED",
                "TERM_BASE_CONCEPT_UPDATED",
                "TERM_BASE_CONCEPT_DELETED",
                "TERM_BASE_IMPORTED",
                "ASYNC_REQUEST_FINISHED"
              ]
            }
          },
          "hidden": {
            "type": "boolean",
            "description": "When true, the webhook is hidden from UI listings; defaults to false"
          },
          "name": {
            "type": "string",
            "description": "Display name of the webhook",
            "minLength": 0,
            "maxLength": 255
          },
          "secretToken": {
            "type": "string",
            "description": "Secret token sent with every webhook request for payload verification",
            "minLength": 0,
            "maxLength": 255
          },
          "secretTokenType": {
            "type": "string",
            "description": "Type of secret token header; defaults to X_MEMSOURCE_TOKEN",
            "enum": [
              "X_MEMSOURCE_TOKEN",
              "AUTHORIZATION"
            ]
          },
          "status": {
            "type": "string",
            "description": "Initial enabled/disabled state of the webhook; defaults to ENABLED",
            "enum": [
              "ENABLED",
              "DISABLED"
            ]
          },
          "url": {
            "type": "string",
            "description": "URL the webhook payload is sent to"
          }
        }
      },
      "CreateWorkflowStepDtoV1": {
        "type": "object",
        "required": [
          "abbr",
          "name"
        ],
        "properties": {
          "abbr": {
            "type": "string",
            "description": "Abbreviation of the workflow step (1–3 characters)",
            "minLength": 1,
            "maxLength": 3
          },
          "lqaEnabled": {
            "type": "boolean",
            "description": "When true, enables LQA for this step"
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow step",
            "minLength": 1,
            "maxLength": 255
          },
          "order": {
            "type": "integer",
            "format": "int32",
            "description": "Display order of the workflow step. When omitted, the step is appended to the end of the organization's workflow step list (highest existing order + 10, or 0 if none exist)."
          }
        }
      },
      "CrossLang": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "domain",
              "url"
            ],
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "CrossLangSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "username"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "CsvSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeyColumn": {
            "type": "string"
          },
          "contextNoteColumns": {
            "type": "string"
          },
          "delimiter": {
            "type": "string",
            "description": "Default: ,"
          },
          "delimiterType": {
            "type": "string",
            "description": "Default: COMMA",
            "enum": [
              "TAB",
              "COMMA",
              "SEMICOLON",
              "OTHER"
            ]
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importColumns": {
            "type": "string"
          },
          "importRows": {
            "type": "string"
          },
          "maxLenColumn": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "CustomFieldDeprecateDtoV1": {
        "type": "object",
        "properties": {
          "deprecated": {
            "type": "boolean",
            "description": "Whether the option should be deprecated (true) or reactivated (false)"
          }
        }
      },
      "CustomFieldDtoV1": {
        "type": "object",
        "properties": {
          "allowedEntities": {
            "type": "array",
            "description": "Entities (project or job) the custom field can be assigned to",
            "items": {
              "type": "string",
              "enum": [
                "PROJECT",
                "JOB"
              ]
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the custom field was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "description": {
            "type": "string",
            "description": "Description of the custom field"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the custom field was last modified"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom field"
          },
          "options": {
            "$ref": "#/components/schemas/CustomFieldOptionsTruncatedDtoV1"
          },
          "required": {
            "type": "boolean",
            "description": "Whether the custom field must be filled in for its allowed entities"
          },
          "requiredFrom": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time from which the custom field is required; null when the field is not required"
          },
          "type": {
            "type": "string",
            "description": "Type of the custom field",
            "enum": [
              "MULTI_SELECT",
              "SINGLE_SELECT",
              "STRING",
              "NUMBER",
              "URL",
              "DATE"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the custom field used in API paths"
          }
        }
      },
      "CustomFieldInstanceApiDtoV2": {
        "type": "object",
        "properties": {
          "customField": {
            "$ref": "#/components/schemas/UidReference"
          },
          "selectedOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "value": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          }
        }
      },
      "CustomFieldInstanceApiV3DtoV3": {
        "type": "object",
        "properties": {
          "customField": {
            "$ref": "#/components/schemas/UidReference"
          },
          "selectedOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "value": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          }
        }
      },
      "CustomFieldInstanceDtoPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CustomFieldInstanceDtoV1": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UidReference"
          },
          "customField": {
            "$ref": "#/components/schemas/CustomFieldDtoV1"
          },
          "selectedOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldOptionDtoV1"
            }
          },
          "uid": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/UidReference"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "CustomFieldInstancePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CustomFieldInstancesDtoV1": {
        "type": "object",
        "properties": {
          "customFieldInstances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
            }
          }
        }
      },
      "CustomFieldOptionDtoV1": {
        "type": "object",
        "properties": {
          "deprecated": {
            "type": "boolean",
            "description": "Whether the option is deprecated"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the option used in API paths"
          },
          "used": {
            "type": "boolean",
            "description": "Whether the option is currently used by at least one entity"
          },
          "value": {
            "type": "string",
            "description": "Value of the option"
          }
        }
      },
      "CustomFieldOptionPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldOptionDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CustomFieldOptionsTruncatedDtoV1": {
        "type": "object",
        "properties": {
          "remainingCount": {
            "type": "integer",
            "format": "int32",
            "description": "Number of options not included in the truncated list"
          },
          "truncatedOptions": {
            "type": "array",
            "description": "Truncated list of options with size 5.\n    To get all options use endpoint for getting options of the specific field",
            "items": {
              "$ref": "#/components/schemas/CustomFieldOptionDtoV1"
            }
          }
        }
      },
      "CustomFieldPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CustomFieldValueDtoV1": {
        "type": "object",
        "required": [
          "fieldName",
          "value"
        ],
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "value": {
            "type": "object"
          }
        }
      },
      "CustomFileTypeDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the custom file type was created"
          },
          "fileImportSettings": {
            "$ref": "#/components/schemas/FileImportSettingsDtoV1"
          },
          "filenamePattern": {
            "type": "string",
            "description": "Regular expression matched against file names to detect this custom file type"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom file type"
          },
          "supportsContinuousJob": {
            "type": "boolean",
            "description": "Whether this custom file type supports continuous jobs. Derived from the underlying file type."
          },
          "type": {
            "type": "string",
            "description": "Underlying file format",
            "enum": [
              "html",
              "json",
              "xml",
              "multiling_xml",
              "txt"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "CustomFileTypePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFileTypeDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CustomQAWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "srcPosition": {
                "$ref": "#/components/schemas/Position"
              },
              "subType": {
                "type": "string"
              },
              "tgtPosition": {
                "$ref": "#/components/schemas/Position"
              }
            }
          }
        ]
      },
      "DeadlineExtensionDtoV1": {
        "type": "object",
        "required": [
          "numberOfTimeUnits",
          "quantity",
          "timeUnit",
          "unit"
        ],
        "properties": {
          "numberOfTimeUnits": {
            "type": "integer",
            "format": "int32",
            "description": "Number of time units to extend the due date by"
          },
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Minimum quantity of billing units to trigger the extension"
          },
          "timeUnit": {
            "type": "string",
            "description": "Time unit of the extension",
            "enum": [
              "HOUR",
              "DAY"
            ]
          },
          "unit": {
            "type": "string",
            "description": "Billing unit of the quantity",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          }
        },
        "description": "Due date deadline extension rule"
      },
      "DeepL": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "DeepLSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "DefaultProjectOwner": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          }
        }
      },
      "DeleteCustomFileTypeDtoV1": {
        "type": "object",
        "required": [
          "customFileTypes"
        ],
        "properties": {
          "customFileTypes": {
            "type": "array",
            "description": "Custom file types to delete, referenced by UID",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "DeleteDueDateSchemesDtoV1": {
        "type": "object",
        "required": [
          "dueDateSchemes"
        ],
        "properties": {
          "dueDateSchemes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "DeleteSegmentsV2DtoV2": {
        "type": "object",
        "required": [
          "segmentIds"
        ],
        "properties": {
          "lang": {
            "type": "string",
            "description": "Language to delete. When omitted, both the source and all translations are removed."
          },
          "segmentIds": {
            "type": "array",
            "description": "IDs of segments to delete.",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "DeleteServicesDtoV1": {
        "type": "object",
        "required": [
          "services"
        ],
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "DeleteVendorsDtoV1": {
        "type": "object",
        "required": [
          "vendors"
        ],
        "properties": {
          "vendors": {
            "type": "array",
            "description": "List of vendor references to delete",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "DesignWeightsDto": {
        "type": "object",
        "properties": {
          "design": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "length": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "localFormatting": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "markup": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "missingText": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "truncation": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "DictionaryItemDtoSpellCheckV1": {
        "type": "object",
        "required": [
          "lang",
          "word"
        ],
        "properties": {
          "lang": {
            "type": "string",
            "description": "Language code for the dictionary entry"
          },
          "word": {
            "type": "string",
            "description": "Word to add to the spell check dictionary. Must not contain any of the following characters: quote (\"), colon (:), slash (/), backslash (\\), exclamation mark (!)"
          }
        }
      },
      "DiscountSchemeReferenceV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "DiscountSchemeReferenceV3": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV3"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "DiscountSchemeWorkflowStepReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NetRateSchemeWorkflowStepReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DitaSettingsDtoV1": {
        "type": "object",
        "properties": {
          "excludeTags": {
            "type": "string"
          },
          "extractSeparateSegmentsXpath": {
            "type": "string"
          },
          "includeTags": {
            "type": "string"
          },
          "inlineTags": {
            "type": "string"
          },
          "inlineTagsNonTranslatable": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "DocBookSettingsDtoV1": {
        "type": "object",
        "properties": {
          "excludeTags": {
            "type": "string"
          },
          "includeTags": {
            "type": "string"
          },
          "inlineTags": {
            "type": "string"
          },
          "inlineTagsNonTranslatable": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "DocSettingsDtoV1": {
        "type": "object",
        "properties": {
          "altText": {
            "type": "boolean",
            "description": "Default: false"
          },
          "applyTrackChanges": {
            "type": "boolean",
            "description": "Default: true"
          },
          "comments": {
            "type": "boolean",
            "description": "Default: false"
          },
          "headerFooter": {
            "type": "boolean",
            "description": "Default: true"
          },
          "hidden": {
            "type": "boolean",
            "description": "Default: false"
          },
          "hyperlinkTarget": {
            "type": "boolean",
            "description": "Default: false"
          },
          "index": {
            "type": "boolean",
            "description": "Default: true"
          },
          "joinSimilarRuns": {
            "type": "boolean",
            "description": "Default: false"
          },
          "ocrImageText": {
            "type": "boolean",
            "description": "Default: false"
          },
          "other": {
            "type": "boolean",
            "description": "Default: false"
          },
          "properties": {
            "type": "boolean",
            "description": "Default: false",
            "readOnly": true
          },
          "tagRegexp": {
            "type": "string"
          },
          "targetFont": {
            "type": "string"
          }
        }
      },
      "DomainDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "DomainEditDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Domain name, max 255 characters. Pass null on edit to leave name unchanged.",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "DomainReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "DomainReferenceV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "DownloadTargetFileDtoV3": {
        "type": "object",
        "properties": {
          "callbackUrl": {
            "type": "string"
          }
        }
      },
      "DrupalPluginConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host"
            ],
            "properties": {
              "basicAuthPassword": {
                "type": "string"
              },
              "basicAuthUserName": {
                "type": "string"
              },
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string",
                "description": "Hostname of the Drupal site, e.g. `mysite.example.com`. Unlike ZENDESK/SALESFORCE, this is a real hostname, not a subdomain prefix; scheme is controlled separately via `forcedHttps`."
              },
              "urlRewriteFind": {
                "type": "string"
              },
              "urlRewriteReplace": {
                "type": "string"
              }
            }
          }
        ]
      },
      "DueDateDeliveryRuleDtoV1": {
        "type": "object",
        "properties": {
          "option": {
            "type": "string",
            "description": "Rule applied to determine the due date completion time: QUOTA_BASED completes at the date/time calculated from the quota; CUSTOM_BASED completes at \"time\" of the day resolved by \"timeUnit\".",
            "enum": [
              "QUOTA_BASED",
              "CUSTOM_BASED"
            ]
          },
          "time": {
            "type": "integer",
            "format": "int32",
            "description": "Delivery time"
          },
          "timeUnit": {
            "type": "string",
            "description": "Unit used to resolve the delivery time - a calendar day or a working day. Default: DAY",
            "enum": [
              "DAY",
              "WORKING_DAY"
            ]
          }
        },
        "description": "Rule applied to determine the due date completion time, based on when the job is completed relative to office hours"
      },
      "DueDateSchemeDtoV1": {
        "type": "object",
        "properties": {
          "afterDelivery": {
            "$ref": "#/components/schemas/DueDateDeliveryRuleDtoV1"
          },
          "afterStart": {
            "$ref": "#/components/schemas/DueDateStartRuleDtoV1"
          },
          "deadlineExtensions": {
            "type": "array",
            "description": "Deadline extension rules",
            "items": {
              "$ref": "#/components/schemas/DeadlineExtensionDtoV1"
            }
          },
          "duringDelivery": {
            "$ref": "#/components/schemas/DueDateDeliveryRuleDtoV1"
          },
          "duringStart": {
            "$ref": "#/components/schemas/DueDateStartRuleDtoV1"
          },
          "isDefault": {
            "type": "boolean",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the due date scheme"
          },
          "nonBusinessDays": {
            "type": "array",
            "description": "Dates excluded as non-business days",
            "items": {
              "type": "string",
              "format": "date-time"
            }
          },
          "officeHours": {
            "$ref": "#/components/schemas/OfficeHoursDtoV1"
          },
          "quota": {
            "$ref": "#/components/schemas/QuotaDtoV1"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the due date scheme"
          },
          "workingDays": {
            "type": "array",
            "description": "Days of week considered working days. Empty means every day.",
            "uniqueItems": true,
            "items": {
              "type": "string",
              "enum": [
                "MONDAY",
                "TUESDAY",
                "WEDNESDAY",
                "THURSDAY",
                "FRIDAY",
                "SATURDAY",
                "SUNDAY"
              ]
            }
          }
        },
        "description": "Due date scheme details. Auto-calculated due dates are computed using the organization's time zone, not the calling user's profile time zone."
      },
      "DueDateSchemeListEntryDtoV1": {
        "type": "object",
        "properties": {
          "isDefault": {
            "type": "boolean",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "Name of the due date scheme"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        },
        "description": "Due date scheme list entry"
      },
      "DueDateStartRuleDtoV1": {
        "type": "object",
        "properties": {
          "dayTypeUnit": {
            "type": "string",
            "description": "Whether the start time applies on the same day or the next matching day. Default: SAME",
            "enum": [
              "SAME",
              "NEXT"
            ]
          },
          "hoursAfterSubmission": {
            "type": "integer",
            "format": "int32",
            "description": "Hours after submission to start counting"
          },
          "option": {
            "type": "string",
            "description": "Rule applied to determine when counting towards the due date starts: IMMEDIATELY starts right away; HOURS_AFTER starts after \"hoursAfterSubmission\" hours; SPECIFIC_DAY_TIME starts at \"startTime\" of the day resolved by \"dayTypeUnit\" and \"startTimeUnit\".",
            "enum": [
              "IMMEDIATELY",
              "HOURS_AFTER",
              "SPECIFIC_DAY_TIME"
            ]
          },
          "startTime": {
            "type": "integer",
            "format": "int32",
            "description": "Time to start counting from"
          },
          "startTimeUnit": {
            "type": "string",
            "description": "Unit used to resolve the start time - a calendar day or a working day. Default: DAY",
            "enum": [
              "DAY",
              "WORKING_DAY"
            ]
          }
        },
        "description": "Rule applied to determine the due date start time, based on when the job was received relative to office hours"
      },
      "EditAnalyseNetRateSchemeDtoV1": {
        "type": "object",
        "properties": {
          "netRateScheme": {
            "$ref": "#/components/schemas/UidReference"
          }
        }
      },
      "EditAnalyseSettingsDtoV1": {
        "type": "object",
        "properties": {
          "allowAutomaticPostAnalysis": {
            "type": "boolean",
            "description": "If automatic post analysis should be created after update source. Default: false"
          },
          "analyzeByLanguage": {
            "type": "boolean",
            "description": "When true, creates one analysis per target language instead of a single combined analysis. Mutually exclusive with analyzeByProvider. Default: false"
          },
          "analyzeByProvider": {
            "type": "boolean",
            "description": "When true, creates one analysis per assigned provider instead of a single combined analysis. Mutually exclusive with analyzeByLanguage. Default: true"
          },
          "countSourceUnits": {
            "type": "boolean",
            "description": "Whether the analysis counts source or target word/character units. When true, counts are based on the source language content; when false, counts are based on the target language content. Default: false"
          },
          "includeConfirmedSegments": {
            "type": "boolean",
            "description": "When true, confirmed (translated) segments are included in the counts. Default: false"
          },
          "includeFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy matches (segments that fuzzily repeat within the analyzed content) are included in the counts. Default: false"
          },
          "includeLockedSegments": {
            "type": "boolean",
            "description": "When true, locked segments are included in the counts. Default: false"
          },
          "includeMachineTranslationMatches": {
            "type": "boolean",
            "description": "When true, machine translation matches are included in the counts. Default: false"
          },
          "includeNonTranslatables": {
            "type": "boolean",
            "description": "When true, non-translatable segments are included in the counts. Default: false"
          },
          "includeNotConfirmedSegments": {
            "type": "boolean",
            "description": "When true, not confirmed segments are included in the counts. Default: false"
          },
          "includeNumbers": {
            "type": "boolean",
            "description": "When true, number-only segments are included in the counts. Default: false"
          },
          "includeTransMemory": {
            "type": "boolean",
            "description": "When true, translation memory matches are included in the counts. Default: false"
          },
          "machineTranslatePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against machine translation matches. Default: false"
          },
          "namingPattern": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "nonTranslatablePostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance for non-translatable segments. Default: false"
          },
          "separateFuzzyRepetitions": {
            "type": "boolean",
            "description": "When true, internal fuzzy repetitions are counted as a separate category instead of being merged into the Repetitions count. Default: false"
          },
          "skipMtScoreThreshold": {
            "type": "number",
            "format": "double",
            "description": "Used only for type=PreAnalyse or PreAnalyseTarget. Threshold above which the MT suggestions are not used. Default: value from PreTranslate settings"
          },
          "transMemoryPostEditing": {
            "type": "boolean",
            "description": "When true, measures the post-editing distance against translation memory matches. Default: false"
          },
          "type": {
            "type": "string",
            "description": "Analysis type: PreAnalyse (source segments analysis), PostAnalyse (machine translation post-editing analysis), PreAnalyseTarget (target segments analysis) or Compare (compares word/character counts across workflow levels)",
            "enum": [
              "PreAnalyse",
              "PostAnalyse",
              "PreAnalyseTarget",
              "Compare"
            ]
          }
        }
      },
      "EditAnalyseV2DtoV2": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Analysis name",
            "minLength": 0,
            "maxLength": 255
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/UidReference"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          }
        }
      },
      "EditLqaConversationDtoV2": {
        "type": "object",
        "required": [
          "lqa"
        ],
        "properties": {
          "correlation": {
            "$ref": "#/components/schemas/ReferenceCorrelation"
          },
          "lqa": {
            "type": "array",
            "description": "LQA references to update. Maximum one item.",
            "items": {
              "$ref": "#/components/schemas/LQAReferencesLQAReferenceV1"
            },
            "maxItems": 1,
            "minItems": 0
          },
          "lqaDescription": {
            "type": "string",
            "description": "Updated description of the LQA issue"
          },
          "status": {
            "type": "string",
            "description": "Conversation status",
            "enum": [
              "resolved",
              "unresolved"
            ]
          }
        }
      },
      "EditPlainConversationDtoV1": {
        "type": "object",
        "properties": {
          "correlation": {
            "$ref": "#/components/schemas/ReferenceCorrelation"
          },
          "status": {
            "type": "string",
            "description": "Conversation status",
            "enum": [
              "resolved",
              "unresolved"
            ]
          }
        }
      },
      "EditProjectMTSettPerLangDtoV1": {
        "type": "object",
        "required": [
          "targetLang"
        ],
        "properties": {
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "EditProjectMTSettPerLangListDtoV1": {
        "type": "object",
        "properties": {
          "mtSettingsPerLangList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EditProjectMTSettPerLangDtoV1"
            }
          }
        }
      },
      "EditProjectMTSettingsDtoV1": {
        "type": "object",
        "properties": {
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/IdReference"
          },
          "machineTranslateSettingsPerLangs": {
            "type": "array",
            "description": "Machine translate settings per target locale; when set, only the given locales are updated and other locales are left untouched. Takes precedence over machineTranslateSettings.",
            "items": {
              "$ref": "#/components/schemas/ProjectMTSettingsPerLangDtoV1"
            }
          }
        },
        "description": "Machine translate settings to apply to a project template"
      },
      "EditProjectSecuritySettingsDtoV2": {
        "type": "object",
        "properties": {
          "allowLoadingExternalContentInEditors": {
            "type": "boolean",
            "description": "When true, the editor may load external content such as images. Default: `true`"
          },
          "allowLoadingIframes": {
            "type": "boolean",
            "description": "When true, the editor may load iframes. Default: `false`"
          },
          "allowedDomains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "downloadEnabled": {
            "type": "boolean",
            "description": "When true, linguists may download the project TMX. Default: `false`"
          },
          "emailNotifications": {
            "type": "boolean",
            "description": "When true, email notifications are enabled for the project. Default: `false`"
          },
          "linguistsMayDownloadLqaReport": {
            "type": "boolean",
            "description": "When true, linguists may download the LQA report. Default: `true`"
          },
          "linguistsMayEditLockedSegments": {
            "type": "boolean",
            "description": "When true, linguists may edit segments that are locked. Default: `false`"
          },
          "linguistsMayEditSource": {
            "type": "boolean",
            "description": "When true, linguists may edit source segments. Default: `true`"
          },
          "linguistsMayEditTagContent": {
            "type": "boolean",
            "description": "When true, linguists may edit tag content in segments. Default: `true`"
          },
          "notifyJobOwnerStatusChanged": {
            "type": "boolean",
            "description": "When true, the job owner is notified when the job status changes. Default: `false`"
          },
          "notifyJobOwnerStatusChangedTemplateUid": {
            "type": "string"
          },
          "notifyReference": {
            "type": "boolean",
            "description": "When true, notifications are sent for reference file events. Default: `false`"
          },
          "notifyReferenceGroups": {
            "type": "string"
          },
          "notifyReferenceTemplateUid": {
            "type": "string"
          },
          "notifyUserMentionOrComment": {
            "type": "boolean",
            "description": "When true, users are notified when they are mentioned or receive a comment. Default: `false`"
          },
          "notifyUserMentionOrCommentTemplateUid": {
            "type": "string"
          },
          "showUserDataToLinguists": {
            "type": "boolean",
            "description": "When true, linguists can see job owner and other user data. Default: `false`"
          },
          "strictWorkflowFinish": {
            "type": "boolean",
            "description": "When true, linguists must complete all workflow steps in order. A job in a later workflow step opens read-only in the editor until the preceding step is Completed. Default: `false`"
          },
          "triggerWebhooks": {
            "type": "boolean",
            "description": "When true, webhooks are triggered for project events. Default: `true`"
          },
          "useVendors": {
            "type": "boolean",
            "description": "When true, vendor organizations may be assigned to the project. Default: `false`"
          },
          "userMaySetInstantQA": {
            "type": "boolean",
            "description": "When true, users may enable instant QA on their jobs. Default: `true`"
          },
          "usernamesDisplayedInLqaReport": {
            "type": "boolean",
            "description": "When true, user names are visible in the LQA report. Default: `true`"
          },
          "usersMaySetAutoPropagation": {
            "type": "boolean",
            "description": "When true, linguists may toggle auto-propagation of translations. Default: `true`"
          },
          "vendors": {
            "$ref": "#/components/schemas/VendorSecuritySettingsDtoV2"
          },
          "webEditorEnabledForLinguists": {
            "type": "boolean",
            "description": "When true, the web editor is available to linguists. Default: `false`"
          }
        }
      },
      "EditProjectV3DtoV3": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "archived": {
            "type": "boolean",
            "description": "Default: false"
          },
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "customFields": {
            "type": "array",
            "description": "Custom fields for project",
            "items": {
              "$ref": "#/components/schemas/CustomFieldInstanceApiV3DtoV3"
            }
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Project due date. Accepts an ISO 8601 date-time with a time zone designator (`Z` or a numeric offset such as `+00:00`/`-05:00`, e.g. `2026-08-29T15:50:00+00:00`); the same format without a designator (e.g. `2026-08-29T15:50:00`) returns 400 Bad Request. A space-separated `yyyy-MM-dd HH:mm` value (e.g. `2026-08-29 15:50`) has no offset and is interpreted as UTC. A legacy `MMM d, yyyy h:mm:ss a` value (e.g. `Aug 29, 2026 3:50:00 PM`) is also accepted and parsed in the server's default time zone, not UTC."
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "fileHandover": {
            "type": "boolean",
            "description": "When true, enables file handover for the project"
          },
          "lqaProfiles": {
            "type": "array",
            "description": "Lqa profiles that will be added to workflow steps",
            "items": {
              "$ref": "#/components/schemas/LqaProfilesForWsV3DtoV3"
            }
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          },
          "propagateTranslationsToLowerWfDuringUpdateSource": {
            "type": "boolean",
            "description": "When true, propagates translations to lower workflow steps during source update"
          },
          "purchaseOrder": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ASSIGNED",
              "COMPLETED",
              "ACCEPTED_BY_VENDOR",
              "DECLINED_BY_VENDOR",
              "COMPLETED_BY_VENDOR",
              "CANCELLED"
            ]
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "EditQASettingsDtoV2": {
        "type": "object",
        "properties": {
          "checks": {
            "type": "array",
            "example": "\n        {\n            \"ignorable\": false,\n            \"enabled\": true,\n            \"type\": \"VOID\",\n            \"instant\": false,\n            \"name\": \"emptyTarget\"\n        },\n        {\n            \"ignorable\": false,\n            \"enabled\": true,\n            \"value\": 12,\n            \"type\": \"NUMBER\",\n            \"name\": \"targetLength\"\n        },\n        {\n            \"ignorable\": false,\n            \"enabled\": true,\n            \"value\": \"ASAP, irony\",\n            \"type\": \"STRING\",\n            \"instant\": true,\n            \"name\": \"forbiddenStrings\"\n        },\n        {\n            \"enabled\": true,\n            \"profile\": \"jiris\",\n            \"ignorable\": true,\n            \"type\": \"MORAVIA\",\n            \"name\": \"moravia\"\n        },\n        {\n            \"rules\": [\n                {\n                    \"description\": \"Description\",\n                    \"sourceRegexp\": \".+\",\n                    \"targetRegexp\": \".+\",\n                    \"ignorable\": true\n                },\n                {\n                    \"description\": \"Description\",\n                    \"sourceRegexp\": \"i+\",\n                    \"targetRegexp\": \"e+\",\n                    \"ignorable\": false\n                }\n            ],\n            \"type\": \"REGEX\",\n            \"name\": \"regexp\"\n        },\n        {\n            \"enabled\": true,\n            \"ignorable\": true,\n            \"type\": \"VOID\",\n            \"name\": \"customQa\"\n        }\n    ",
            "description": "List of QA check configurations. Each entry must include \"name\" (check identifier) and \"type\" (VOID, NUMBER, STRING, REGEX, or MORAVIA). VOID, NUMBER, and STRING checks accept \"enabled\", \"ignorable\", \"instant\", and \"lock\"; MORAVIA accepts \"enabled\", \"ignorable\", \"instant\", and a \"profile\" string; REGEX checks carry a \"rules\" array (per-rule fields define the regular expressions and flags). NUMBER checks require a numeric \"value\"; STRING checks accept a string \"value\". Only checks listed here are updated; omitted checks keep their current settings. The \"strictJobStatus\" check name is a special case: it is not a content/segment-level QA rule but the project/template-wide completion gate — setting its \"enabled\" to true blocks linguists from setting a job to Completed while QA warnings are unresolved for that job. Its \"ignorable\" has no effect for this check name.",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              }
            }
          }
        }
      },
      "EditSegmentationRuleDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the segmentation rule",
            "minLength": 0,
            "maxLength": 255
          },
          "primary": {
            "type": "boolean",
            "description": "When true, this rule is the primary segmentation rule for its locale in the organization"
          }
        },
        "description": "segmentation rule object for editing"
      },
      "EditTbCustomFieldDtoV1": {
        "type": "object",
        "required": [
          "fieldName"
        ],
        "properties": {
          "fieldName": {
            "type": "string",
            "example": "Usage notes",
            "description": "Name of the custom field",
            "minLength": 1,
            "maxLength": 100,
            "pattern": ".*\\S.*"
          },
          "values": {
            "type": "array",
            "description": "Possible values for select type fields. Required for type SINGLE_SELECT and MULTI_SELECT",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 0
          }
        },
        "description": "DTO for editing a term base custom field"
      },
      "EditWorkflowStepDtoV1": {
        "type": "object",
        "properties": {
          "abbr": {
            "type": "string",
            "description": "Abbreviation of the workflow step (1–3 characters)",
            "minLength": 1,
            "maxLength": 3
          },
          "lqaEnabled": {
            "type": "boolean",
            "description": "When true, enables LQA for this step; omit to keep the existing value"
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow step",
            "minLength": 1,
            "maxLength": 255
          },
          "order": {
            "type": "integer",
            "format": "int32",
            "description": "Display order of the workflow step"
          }
        }
      },
      "EmptyPairTagsWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "EmptyTagContentWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "EmptyTranslationWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "EnabledCheckContextDtoV4": {
        "type": "object",
        "properties": {
          "customQaDisplayName": {
            "type": "string",
            "description": "Display name for custom QA checks"
          },
          "moraviaProfileId": {
            "type": "string",
            "description": "Moravia profile identifier used for Moravia QA checks"
          },
          "provider": {
            "type": "string",
            "description": "Provider identifier for third-party QA checks"
          }
        }
      },
      "EnabledCheckDtoV4": {
        "type": "object",
        "properties": {
          "checkerType": {
            "type": "string",
            "description": "Type identifier of the QA check"
          },
          "context": {
            "$ref": "#/components/schemas/EnabledCheckContextDtoV4"
          }
        }
      },
      "ErrorCategoriesDto": {
        "type": "object",
        "properties": {
          "accuracy": {
            "$ref": "#/components/schemas/AccuracyWeightsDto"
          },
          "design": {
            "$ref": "#/components/schemas/DesignWeightsDto"
          },
          "fluency": {
            "$ref": "#/components/schemas/FluencyWeightsDto"
          },
          "localeConvention": {
            "$ref": "#/components/schemas/LocaleConventionWeightsDto"
          },
          "other": {
            "$ref": "#/components/schemas/OtherWeightsDto"
          },
          "style": {
            "$ref": "#/components/schemas/StyleWeightsDto"
          },
          "terminology": {
            "$ref": "#/components/schemas/TerminologyWeightsDto"
          },
          "verity": {
            "$ref": "#/components/schemas/VerityWeightsDto"
          }
        },
        "description": "Error categories and their importance weight. If not provided, defaults will be created."
      },
      "ErrorDetailDtoV1": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "description": "Related arguments, e.g. number => \"hello world\"",
            "additionalProperties": {
              "type": "object"
            }
          },
          "code": {
            "type": "string",
            "description": "Code, e.g. NOT_FOUND."
          },
          "message": {
            "type": "string",
            "description": "Optional human-readable message."
          }
        }
      },
      "ErrorDetailDtoV2": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "description": "Related arguments, e.g. number => \"hello world\"",
            "additionalProperties": {
              "type": "object"
            }
          },
          "code": {
            "type": "string",
            "description": "Code, e.g. NOT_FOUND."
          },
          "message": {
            "type": "string",
            "description": "Optional human-readable message."
          }
        }
      },
      "ErrorDetailDtoV3": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "description": "Related arguments, e.g. number => \"hello world\"",
            "additionalProperties": {
              "type": "object"
            }
          },
          "code": {
            "type": "string",
            "description": "Code, e.g. NOT_FOUND."
          },
          "message": {
            "type": "string",
            "description": "Human-readable error message."
          }
        }
      },
      "ErrorDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "ErrorResponseDtoV1": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "ExportByQueryDtoV1": {
        "type": "object",
        "properties": {
          "callbackUrl": {
            "type": "string",
            "description": "Callback URL to notify when the async export completes"
          },
          "createdAtMax": {
            "type": "string",
            "format": "date-time",
            "description": "Maximum segment creation timestamp filter"
          },
          "createdAtMin": {
            "type": "string",
            "format": "date-time",
            "description": "Minimum segment creation timestamp filter"
          },
          "createdBy": {
            "$ref": "#/components/schemas/IdReference"
          },
          "exportTargetLangs": {
            "type": "array",
            "description": "Target locale(s) for the exported TMX. Optional — if omitted, all target TUVs are exported (OR/disjunction). TUs are kept when they have at least one TUV matching any listed locale.",
            "items": {
              "type": "string"
            }
          },
          "filename": {
            "type": "string",
            "description": "Custom filename for the exported TMX file"
          },
          "modifiedAtMax": {
            "type": "string",
            "format": "date-time",
            "description": "Maximum segment last-modified timestamp filter"
          },
          "modifiedAtMin": {
            "type": "string",
            "format": "date-time",
            "description": "Minimum segment last-modified timestamp filter"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/IdReference"
          },
          "project": {
            "$ref": "#/components/schemas/UidReference"
          },
          "queries": {
            "type": "array",
            "description": "Search query strings (one per queryLangs entry). Optional — if omitted or empty, exports all TUs matching targetLocales (OR). When provided, multiple entries are AND-intersected: a TU must satisfy every query. An empty string \"\" or null entry is ignored (no constraint for that locale); use \"*\" to require a TUV to exist in a locale without filtering by text.",
            "items": {
              "type": "string"
            }
          },
          "queryLangs": {
            "type": "array",
            "description": "Locale for each corresponding queries entry (aligned 1-to-1). Optional — required only when queries is provided; must have the same number of entries.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Request body for exportByQueryAsync; specifies query expressions, locales and optional filters"
      },
      "ExportTMDtoV2": {
        "type": "object",
        "properties": {
          "callbackUrl": {
            "type": "string"
          },
          "exportTargetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ExtraNumbersV3WarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "number": {
                "type": "string"
              },
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              }
            }
          }
        ]
      },
      "ExtraNumbersWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "extraNumbers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "ExtractTermsRequestDtoV1": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "ignoreWordContainingNumbers": {
            "type": "boolean",
            "description": "When true, candidate terms containing digits are ignored. Default: true"
          },
          "jobs": {
            "type": "array",
            "description": "Jobs whose content is scanned for candidate terms",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 0
          },
          "maxWords": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of words in an extracted term. Default: 3",
            "minimum": 1,
            "maximum": 20
          },
          "minFrequency": {
            "type": "integer",
            "format": "int32",
            "description": "Minimum number of occurrences required for a candidate term. Default: 4",
            "minimum": 1
          },
          "minWordLength": {
            "type": "integer",
            "format": "int32",
            "description": "Minimum character length of a candidate term. Default: 4",
            "minimum": 1
          }
        }
      },
      "FTP": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "password",
              "port",
              "userName"
            ],
            "properties": {
              "encryption": {
                "type": "string",
                "description": "Default TLS_IF_AVAILABLE",
                "enum": [
                  "NOT_USED",
                  "INSECURE",
                  "IMPLICIT_TLS_REQUIRED",
                  "EXPLICIT_TLS_REQUIRED",
                  "TLS_IF_AVAILABLE"
                ]
              },
              "host": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "port": {
                "type": "integer",
                "format": "int32"
              },
              "userName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "FairTrade": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "FairTradeSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "FeaturesDtoV1": {
        "type": "object",
        "properties": {
          "autoLqaCopilotEnabled": {
            "type": "boolean",
            "description": "Deprecated. When true, the Auto LQA copilot is enabled"
          },
          "birdieEnabled": {
            "type": "boolean",
            "description": "When true, the Birdie assistant is enabled"
          },
          "filteringByCustomMetadataEnabled": {
            "type": "boolean",
            "description": "When true, filtering by custom metadata is enabled"
          },
          "filteringByRegexEnabled": {
            "type": "boolean",
            "description": "When true, filtering by regular expression is enabled"
          },
          "icuEnabled": {
            "type": "boolean",
            "description": "When true, ICU message format support is enabled"
          },
          "idmOrganizationLogoEnabled": {
            "type": "boolean",
            "description": "When true, the IDM organization logo is enabled"
          },
          "idml2htmlPreviewEnabled": {
            "type": "boolean",
            "description": "When true, IDML2HTML-based IDML preview is enabled in the translation editor"
          },
          "ignoreTagMetadataEnabled": {
            "type": "boolean",
            "description": "When true, tag metadata is ignored in the translation editor"
          },
          "loadingSegmentsUsingAnchorsEnabled": {
            "type": "boolean",
            "description": "When true, segments are loaded using anchors in the translation editor"
          },
          "lqaBulkCommentsCreation": {
            "type": "boolean",
            "description": "When true, bulk creation of LQA comments is enabled"
          },
          "mentionsAndNotificationsPollingInterval": {
            "type": "integer",
            "format": "int32",
            "description": "Polling interval, in seconds, for mentions and notifications"
          },
          "mtForTMAbove100Enabled": {
            "type": "boolean",
            "description": "When true, machine translation is used for translation memory matches above 100%"
          },
          "mtuOptimizationEnabled": {
            "type": "boolean",
            "description": "When true, MTU optimization is enabled"
          },
          "platformSettingsEnabled": {
            "type": "boolean",
            "description": "When true, platform settings in the translation editor are enabled"
          },
          "qaHighlightsEnabled": {
            "type": "boolean",
            "description": "When true, QA highlights are enabled"
          },
          "rejectJobs": {
            "type": "boolean",
            "description": "When true, the user may reject jobs. When false, this is ambiguous between two independent gates: (a) the organization's plan/edition does not entitle job rejection at all, which only Phrase can change, or (b) the plan entitles it but this linguist's own \"may reject jobs\" permission is off, which that organization's project manager or admin can enable on the user's profile. This field alone does not indicate which gate is blocking."
          },
          "strictTermPropertyEnabled": {
            "type": "boolean",
            "description": "When true, Strict term base matching is enabled"
          },
          "styleGuidesEnabled": {
            "type": "boolean",
            "description": "When true, style guides are enabled"
          },
          "tbCustomFieldsEnabled": {
            "type": "boolean",
            "description": "When true, term base custom fields are enabled"
          },
          "tweI18nEnabled": {
            "type": "boolean",
            "description": "When true, internationalization in the translation editor is enabled"
          }
        },
        "description": "Feature toggles enabled for the user and their organization"
      },
      "FileDto": {
        "type": "object",
        "properties": {
          "contentType": {
            "type": "string"
          },
          "directory": {
            "type": "boolean"
          },
          "dueDate": {
            "type": "string",
            "format": "date-time"
          },
          "encodedName": {
            "type": "string"
          },
          "error": {
            "$ref": "#/components/schemas/ErrorDto"
          },
          "id": {
            "type": "string"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "selected": {
            "type": "boolean"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          },
          "uniqueIdentifier": {
            "type": "string"
          }
        }
      },
      "FileHandoverDtoV1": {
        "type": "object",
        "properties": {
          "fileId": {
            "type": "string",
            "description": "ID of the uploaded file"
          },
          "filename": {
            "type": "string",
            "description": "Filename of the uploaded file"
          }
        }
      },
      "FileHandoverSettingsReferenceV1": {
        "type": "object",
        "properties": {
          "fileHandover": {
            "type": "boolean"
          }
        }
      },
      "FileImportSettingsCreateDtoV1": {
        "type": "object",
        "properties": {
          "android": {
            "$ref": "#/components/schemas/AndroidSettingsDtoV1"
          },
          "asciidoc": {
            "$ref": "#/components/schemas/AsciidocSettingsDtoV1"
          },
          "autodetectMultilingualFiles": {
            "type": "boolean",
            "description": "Try to use multilingual variants for auto-detected CSV and Excel files. Default: true"
          },
          "csv": {
            "$ref": "#/components/schemas/CsvSettingsDtoV1"
          },
          "dita": {
            "$ref": "#/components/schemas/DitaSettingsDtoV1"
          },
          "doc": {
            "$ref": "#/components/schemas/DocSettingsDtoV1"
          },
          "docBook": {
            "$ref": "#/components/schemas/DocBookSettingsDtoV1"
          },
          "fileFormat": {
            "type": "string",
            "description": "default: auto-detect",
            "enum": [
              "auto-detect",
              "doc",
              "ppt",
              "xls",
              "xlf",
              "xlf2",
              "sdlxlif",
              "ttx",
              "html",
              "xml",
              "mif",
              "tmx",
              "idml",
              "dita",
              "json",
              "po",
              "ts",
              "icml",
              "yaml",
              "properties",
              "csv",
              "android_string",
              "desktop_entry",
              "mac_strings",
              "pdf",
              "windows_rc",
              "xml_properties",
              "joomla_ini",
              "magento_csv",
              "dtd",
              "mozilla_properties",
              "plist",
              "plain_text",
              "srt",
              "sub",
              "sbv",
              "wiki",
              "resx",
              "resjson",
              "chrome_json",
              "epub",
              "svg",
              "docbook",
              "wpxliff",
              "multiling_xml",
              "multiling_xls",
              "mqxliff",
              "php",
              "psd",
              "tag",
              "md",
              "vtt"
            ]
          },
          "html": {
            "$ref": "#/components/schemas/HtmlSettingsDtoV1"
          },
          "idml": {
            "$ref": "#/components/schemas/IdmlSettingsDtoV1"
          },
          "inputCharset": {
            "type": "string"
          },
          "json": {
            "$ref": "#/components/schemas/JsonSettingsDtoV1"
          },
          "mac": {
            "$ref": "#/components/schemas/MacSettingsDtoV1"
          },
          "md": {
            "$ref": "#/components/schemas/MdSettingsDtoV1"
          },
          "mif": {
            "$ref": "#/components/schemas/MifSettingsDtoV1"
          },
          "multilingualCsv": {
            "$ref": "#/components/schemas/MultilingualCsvSettingsDtoV1"
          },
          "multilingualXls": {
            "$ref": "#/components/schemas/MultilingualXlsSettingsDtoV1"
          },
          "multilingualXml": {
            "$ref": "#/components/schemas/MultilingualXmlSettingsDtoV1"
          },
          "outputCharset": {
            "type": "string"
          },
          "pdf": {
            "$ref": "#/components/schemas/PdfSettingsDtoV1"
          },
          "php": {
            "$ref": "#/components/schemas/PhpSettingsDtoV1"
          },
          "po": {
            "$ref": "#/components/schemas/PoSettingsDtoV1"
          },
          "ppt": {
            "$ref": "#/components/schemas/PptSettingsDtoV1"
          },
          "properties": {
            "$ref": "#/components/schemas/PropertiesSettingsDtoV1"
          },
          "psd": {
            "$ref": "#/components/schemas/PsdSettingsDtoV1"
          },
          "quarkTag": {
            "$ref": "#/components/schemas/QuarkTagSettingsDtoV1"
          },
          "resx": {
            "$ref": "#/components/schemas/ResxSettingsDtoV1"
          },
          "sdlXlf": {
            "$ref": "#/components/schemas/SdlXlfSettingsDtoV1"
          },
          "segmentationRuleId": {
            "type": "integer",
            "format": "int64"
          },
          "targetLength": {
            "type": "boolean",
            "description": "Default: false"
          },
          "targetLengthMax": {
            "type": "integer",
            "format": "int32",
            "description": "default: 1000"
          },
          "targetLengthPercent": {
            "type": "boolean",
            "description": "Default: false"
          },
          "targetLengthPercentValue": {
            "type": "number",
            "format": "double",
            "description": "default: 130"
          },
          "targetSegmentationRuleId": {
            "type": "integer",
            "format": "int64"
          },
          "tmMatch": {
            "$ref": "#/components/schemas/TMMatchSettingsDtoV1"
          },
          "ttx": {
            "$ref": "#/components/schemas/TtxSettingsDtoV1"
          },
          "txt": {
            "$ref": "#/components/schemas/TxtSettingsDtoV1"
          },
          "xlf": {
            "$ref": "#/components/schemas/XlfSettingsDtoV1"
          },
          "xlf2": {
            "$ref": "#/components/schemas/Xlf2SettingsDtoV1"
          },
          "xls": {
            "$ref": "#/components/schemas/XlsSettingsDtoV1"
          },
          "xml": {
            "$ref": "#/components/schemas/XmlSettingsDtoV1"
          },
          "yaml": {
            "$ref": "#/components/schemas/YamlSettingsDtoV1"
          },
          "zipCharset": {
            "type": "string"
          }
        }
      },
      "FileImportSettingsDtoV1": {
        "type": "object",
        "properties": {
          "android": {
            "$ref": "#/components/schemas/AndroidSettingsDtoV1"
          },
          "asciidoc": {
            "$ref": "#/components/schemas/AsciidocSettingsDtoV1"
          },
          "autodetectMultilingualFiles": {
            "type": "boolean"
          },
          "csv": {
            "$ref": "#/components/schemas/CsvSettingsDtoV1"
          },
          "dita": {
            "$ref": "#/components/schemas/DitaSettingsDtoV1"
          },
          "doc": {
            "$ref": "#/components/schemas/DocSettingsDtoV1"
          },
          "docBook": {
            "$ref": "#/components/schemas/DocBookSettingsDtoV1"
          },
          "fileFormat": {
            "type": "string"
          },
          "html": {
            "$ref": "#/components/schemas/HtmlSettingsDtoV1"
          },
          "idml": {
            "$ref": "#/components/schemas/IdmlSettingsDtoV1"
          },
          "inputCharset": {
            "type": "string"
          },
          "json": {
            "$ref": "#/components/schemas/JsonSettingsDtoV1"
          },
          "mac": {
            "$ref": "#/components/schemas/MacSettingsDtoV1"
          },
          "md": {
            "$ref": "#/components/schemas/MdSettingsDtoV1"
          },
          "mif": {
            "$ref": "#/components/schemas/MifSettingsDtoV1"
          },
          "multilingualCsv": {
            "$ref": "#/components/schemas/MultilingualCsvSettingsDtoV1"
          },
          "multilingualXls": {
            "$ref": "#/components/schemas/MultilingualXlsSettingsDtoV1"
          },
          "multilingualXml": {
            "$ref": "#/components/schemas/MultilingualXmlSettingsDtoV1"
          },
          "outputCharset": {
            "type": "string"
          },
          "pdf": {
            "$ref": "#/components/schemas/PdfSettingsDtoV1"
          },
          "php": {
            "$ref": "#/components/schemas/PhpSettingsDtoV1"
          },
          "po": {
            "$ref": "#/components/schemas/PoSettingsDtoV1"
          },
          "ppt": {
            "$ref": "#/components/schemas/PptSettingsDtoV1"
          },
          "properties": {
            "$ref": "#/components/schemas/PropertiesSettingsDtoV1"
          },
          "psd": {
            "$ref": "#/components/schemas/PsdSettingsDtoV1"
          },
          "quarkTag": {
            "$ref": "#/components/schemas/QuarkTagSettingsDtoV1"
          },
          "resx": {
            "$ref": "#/components/schemas/ResxSettingsDtoV1"
          },
          "sdlXlf": {
            "$ref": "#/components/schemas/SdlXlfSettingsDtoV1"
          },
          "segRule": {
            "$ref": "#/components/schemas/SegRuleReferenceV1"
          },
          "targetLength": {
            "type": "boolean"
          },
          "targetLengthMax": {
            "type": "integer",
            "format": "int32"
          },
          "targetLengthPercent": {
            "type": "boolean"
          },
          "targetLengthPercentValue": {
            "type": "number",
            "format": "double"
          },
          "targetSegRule": {
            "$ref": "#/components/schemas/SegRuleReferenceV1"
          },
          "tmMatch": {
            "$ref": "#/components/schemas/TMMatchSettingsDtoV1"
          },
          "ttx": {
            "$ref": "#/components/schemas/TtxSettingsDtoV1"
          },
          "txt": {
            "$ref": "#/components/schemas/TxtSettingsDtoV1"
          },
          "xlf": {
            "$ref": "#/components/schemas/XlfSettingsDtoV1"
          },
          "xlf2": {
            "$ref": "#/components/schemas/Xlf2SettingsDtoV1"
          },
          "xls": {
            "$ref": "#/components/schemas/XlsSettingsDtoV1"
          },
          "xml": {
            "$ref": "#/components/schemas/XmlSettingsDtoV1"
          },
          "yaml": {
            "$ref": "#/components/schemas/YamlSettingsDtoV1"
          },
          "zipCharset": {
            "type": "string"
          }
        }
      },
      "FileListDto": {
        "type": "object",
        "properties": {
          "currentFolder": {
            "type": "string"
          },
          "encodedCurrentFolder": {
            "type": "string"
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileDto"
            }
          },
          "lastChangedFiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileDto"
            }
          },
          "rootFolder": {
            "type": "boolean"
          }
        }
      },
      "FilterEntryByContentType": {
        "type": "object",
        "properties": {
          "strategy": {
            "type": "string",
            "enum": [
              "DISABLE",
              "EXCLUDE",
              "INCLUDE"
            ]
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FilterReferencesByDepth": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 10000
          }
        }
      },
      "FilterReferencesByEntryContentType": {
        "type": "object",
        "properties": {
          "strategy": {
            "type": "string",
            "enum": [
              "DISABLE",
              "EXCLUDE"
            ]
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FilterReferencesByEntryTag": {
        "type": "object",
        "properties": {
          "strategy": {
            "type": "string",
            "enum": [
              "DISABLE",
              "EXCLUDE",
              "INCLUDE"
            ]
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FilterReferencesByFieldId": {
        "type": "object",
        "properties": {
          "strategy": {
            "type": "string",
            "enum": [
              "DISABLE",
              "EXCLUDE",
              "INCLUDE"
            ]
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FindConversationsDtoV1": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "includeDeleted": {
            "type": "boolean",
            "description": "Default: false"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "since": {
            "type": "string"
          }
        }
      },
      "FindConversationsForProjectDtoV1": {
        "type": "object",
        "required": [
          "jobPartUidRef"
        ],
        "properties": {
          "includeDeleted": {
            "type": "boolean",
            "description": "Include conversations flagged for deletion. Default: false"
          },
          "jobPartUidRef": {
            "$ref": "#/components/schemas/UidReference"
          },
          "mentionedUid": {
            "type": "string",
            "description": "Search a single user uid in mentions"
          },
          "pageRequest": {
            "$ref": "#/components/schemas/PageRequest"
          },
          "since": {
            "type": "string",
            "example": "2024-07-21T10:15:27.819Z",
            "description": "Filtered by createdAt date time in ISO 8601 UTC format"
          },
          "status": {
            "type": "string",
            "description": "Filter current status for values \"resolved\" or \"unresolved\""
          },
          "text": {
            "type": "string",
            "description": "Case insensitive search in the lqa description and conversation comments"
          }
        }
      },
      "FinishAssessmentDtoV1": {
        "type": "object",
        "properties": {
          "overallFeedback": {
            "type": "string",
            "description": "Overall feedback from the LQA reviewer.\n        If the assessment has already been finished before, null value means keep the previous feedback."
          }
        },
        "description": "Data for finishing LQA Assessment"
      },
      "FinishAssessmentItemDtoV1": {
        "type": "object",
        "required": [
          "jobPartUid"
        ],
        "properties": {
          "jobPartUid": {
            "type": "string",
            "description": "UID of the corresponding job part"
          },
          "overallFeedback": {
            "type": "string",
            "description": "Overall feedback from the LQA reviewer.\n        If the assessment has already been finished before, null value means keep the previous feedback."
          }
        },
        "description": "Data for finishing single LQA assessment"
      },
      "FinishAssessmentsDtoV1": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FinishAssessmentItemDtoV1"
            },
            "maxItems": 100,
            "minItems": 1
          }
        },
        "description": "Data for finishing multiple LQA assessments"
      },
      "FluencyWeightsDto": {
        "type": "object",
        "properties": {
          "characterEncoding": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "crossReference": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "fluency": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "grammar": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "grammaticalRegister": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "inconsistency": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "punctuation": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "spelling": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "ForbiddenStringWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "forbiddenString": {
                "type": "string"
              },
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              }
            }
          }
        ]
      },
      "ForbiddenTermWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              },
              "sourceTerms": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Term"
                }
              },
              "term": {
                "type": "string"
              }
            }
          }
        ]
      },
      "FormattingWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "FuzzyInconsistencyWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "segmentIds": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "GIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "password",
              "userName"
            ],
            "properties": {
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "sshKey": {
                "type": "string"
              },
              "sshKeyName": {
                "type": "string"
              },
              "sshPassPhrase": {
                "type": "string"
              },
              "userName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "GITLAB": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "token"
            ],
            "properties": {
              "exportAsPullRequest": {
                "type": "boolean"
              },
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string"
              },
              "pullRequestBranch": {
                "type": "string"
              },
              "token": {
                "type": "string"
              }
            }
          }
        ]
      },
      "GOOGLE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "oauthClientId",
              "redirectUri"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "encryption": {
                "type": "string",
                "enum": [
                  "NOT_USED",
                  "INSECURE",
                  "IMPLICIT_TLS_REQUIRED",
                  "EXPLICIT_TLS_REQUIRED",
                  "TLS_IF_AVAILABLE"
                ]
              },
              "oauthClientId": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "GOOGLE_DRIVE2": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "oauthClientId",
              "redirectUri"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "oauthClientId": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "GUEST": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
          },
          {
            "type": "object",
            "required": [
              "client"
            ],
            "properties": {
              "client": {
                "$ref": "#/components/schemas/UidReference"
              },
              "enableMT": {
                "type": "boolean",
                "description": "Enable MT. Default: true"
              },
              "projectViewOther": {
                "type": "boolean",
                "description": "View projects created by other users. Default: true"
              },
              "projectViewOtherEditor": {
                "type": "boolean",
                "description": "Edit jobs in Phrase CAT editor. Default: true"
              },
              "projectViewOtherLinguist": {
                "type": "boolean",
                "description": "Show provider names. Default: true"
              },
              "termBaseApproveOther": {
                "type": "boolean",
                "description": "Approve terms in TBs created by other users. Default: true"
              },
              "termBaseEditOther": {
                "type": "boolean",
                "description": "Modify TBs created by other users. Default: true"
              },
              "termBaseExportOther": {
                "type": "boolean",
                "description": "Export TBs created by other users. Default: true"
              },
              "termBaseImportOther": {
                "type": "boolean",
                "description": "Import into TBs created by other users. Default: true"
              },
              "termBaseViewOther": {
                "type": "boolean",
                "description": "View TBs created by other users. Default: true"
              },
              "transMemoryEditOther": {
                "type": "boolean",
                "description": "Modify TMs created by other users. Default: true"
              },
              "transMemoryExportOther": {
                "type": "boolean",
                "description": "Export TMs created by other users. Default: true"
              },
              "transMemoryImportOther": {
                "type": "boolean",
                "description": "Import into TMs created by other users. Default: true"
              },
              "transMemoryViewOther": {
                "type": "boolean",
                "description": "View TMs created by other users. Default: true"
              }
            }
          }
        ]
      },
      "GUEST_EDIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserEditDtoV3"
          },
          {
            "type": "object",
            "required": [
              "client"
            ],
            "properties": {
              "client": {
                "$ref": "#/components/schemas/UidReference"
              },
              "enableMT": {
                "type": "boolean",
                "description": "Enable MT. Default: true"
              },
              "projectViewOther": {
                "type": "boolean",
                "description": "View projects created by other users. Default: true"
              },
              "projectViewOtherEditor": {
                "type": "boolean",
                "description": "Edit jobs in Phrase CAT editor. Default: true"
              },
              "projectViewOtherLinguist": {
                "type": "boolean",
                "description": "Show provider names. Default: true"
              },
              "termBaseApproveOther": {
                "type": "boolean",
                "description": "Approve terms in TBs created by other users. Default: true"
              },
              "termBaseEditOther": {
                "type": "boolean",
                "description": "Modify TBs created by other users. Default: true"
              },
              "termBaseExportOther": {
                "type": "boolean",
                "description": "Export TBs created by other users. Default: true"
              },
              "termBaseImportOther": {
                "type": "boolean",
                "description": "Import into TBs created by other users. Default: true"
              },
              "termBaseViewOther": {
                "type": "boolean",
                "description": "View TBs created by other users. Default: true"
              },
              "transMemoryEditOther": {
                "type": "boolean",
                "description": "Modify TMs created by other users. Default: true"
              },
              "transMemoryExportOther": {
                "type": "boolean",
                "description": "Export TMs created by other users. Default: true"
              },
              "transMemoryImportOther": {
                "type": "boolean",
                "description": "Import into TMs created by other users. Default: true"
              },
              "transMemoryViewOther": {
                "type": "boolean",
                "description": "View TMs created by other users. Default: true"
              }
            }
          }
        ]
      },
      "GUEST_RESPONSE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserDetailsDtoV3"
          },
          {
            "type": "object",
            "required": [
              "client"
            ],
            "properties": {
              "client": {
                "$ref": "#/components/schemas/ClientReferenceV3"
              },
              "enableMT": {
                "type": "boolean"
              },
              "projectViewOther": {
                "type": "boolean"
              },
              "projectViewOtherEditor": {
                "type": "boolean"
              },
              "projectViewOtherLinguist": {
                "type": "boolean"
              },
              "termBaseApproveOther": {
                "type": "boolean"
              },
              "termBaseEditOther": {
                "type": "boolean"
              },
              "termBaseExportOther": {
                "type": "boolean"
              },
              "termBaseImportOther": {
                "type": "boolean"
              },
              "termBaseViewOther": {
                "type": "boolean"
              },
              "transMemoryEditOther": {
                "type": "boolean"
              },
              "transMemoryExportOther": {
                "type": "boolean"
              },
              "transMemoryImportOther": {
                "type": "boolean"
              },
              "transMemoryViewOther": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "Geofluent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "accountKey"
            ],
            "properties": {
              "accountKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GeofluentSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "secretKey"
            ],
            "properties": {
              "secretKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GetBilingualFileDtoV1": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 1000,
            "minItems": 1
          }
        }
      },
      "GetFileRequestParamsDtoV2": {
        "type": "object",
        "properties": {
          "callbackUrl": {
            "type": "string",
            "example": "{\"callbackUrl\": \"https://www.yourdomain.com/callback_endpoint\"}"
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "GitHubConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "exportAsPullRequest": {
                "type": "boolean"
              },
              "pullRequestBranch": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              },
              "useGitHubApps": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "Globalese": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "groupId",
              "url"
            ],
            "properties": {
              "engineId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "groupId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GlobaleseCloud": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "engineId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GlobaleseNmt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "groupId",
              "url"
            ],
            "properties": {
              "engineId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "groupId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GlobaleseNmtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "username"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GlobaleseSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "privateKey",
              "publicKey",
              "username"
            ],
            "properties": {
              "privateKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "publicKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GlossaryActivationDtoV1": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When true, the glossary is activated; when false, it is deactivated"
          }
        }
      },
      "GlossaryDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Whether the glossary is active"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the glossary was created"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "internalId": {
            "type": "integer",
            "format": "int64",
            "description": "Sequential numeric identifier of the glossary within the organization"
          },
          "langs": {
            "type": "array",
            "description": "Language codes associated with the glossary",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the glossary"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "profileCount": {
            "type": "integer",
            "format": "int32",
            "description": "Number of machine translation profiles linked to the glossary"
          },
          "profiles": {
            "type": "array",
            "description": "Machine translation profiles linked to the glossary",
            "items": {
              "$ref": "#/components/schemas/MemsourceTranslateProfileSimpleDtoV1"
            }
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "GlossaryEditDtoV1": {
        "type": "object",
        "required": [
          "langs",
          "name"
        ],
        "properties": {
          "langs": {
            "type": "array",
            "description": "Language codes of the glossary. At least one is required",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "name": {
            "type": "string",
            "description": "Name of the glossary",
            "minLength": 0,
            "maxLength": 255
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "GlossaryPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GlossaryDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "GlossarySimpleDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "GoogleAutoMl": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "model",
              "projectNumber"
            ],
            "properties": {
              "bucketName": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "model": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "projectNumber": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "GoogleAutoMlTranslateSettingsLabelDtoV1": {
        "type": "object",
        "required": [
          "googleKey"
        ],
        "properties": {
          "googleKey": {
            "type": "string",
            "description": "Google AutoML dataset label key"
          },
          "googleValue": {
            "type": "string",
            "description": "Google AutoML dataset label value"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          }
        }
      },
      "GoogleAutoMlTranslateSettingsLabelsDtoV1": {
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "description": "Google AutoML model labels associated with this engine",
            "items": {
              "$ref": "#/components/schemas/GoogleAutoMlTranslateSettingsLabelDtoV1"
            }
          }
        }
      },
      "GoogleTranslate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "useNmt": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "GoogleTranslateSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "HUBSPOT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "redirectUri",
              "sourceLang"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "hubSpotTranslateContentMetadata": {
                "type": "boolean"
              },
              "hubSpotTranslateFeaturedImageAltText": {
                "type": "boolean"
              },
              "hubSpotTranslateHeadHtml": {
                "type": "boolean"
              },
              "hubSpotTranslateSmartContent": {
                "type": "boolean"
              },
              "hubSpotTranslationStatus": {
                "type": "string"
              },
              "hubspotOmitFieldsForTranslationValues": {
                "type": "string"
              },
              "multilanguageSupport": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              }
            }
          }
        ]
      },
      "HtmlSettingsDtoV1": {
        "type": "object",
        "properties": {
          "breakTagCreatesSegment": {
            "type": "boolean",
            "description": "Default: true"
          },
          "charEntitiesToTags": {
            "type": "string"
          },
          "escapeDisabled": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "excludeElements": {
            "type": "string",
            "description": "Example: \"script,blockquote\""
          },
          "importComments": {
            "type": "boolean",
            "description": "Default: true"
          },
          "importDefaultAttributes": {
            "type": "boolean",
            "description": "Default: true"
          },
          "importDefaultMetaTags": {
            "type": "boolean",
            "description": "Default: true"
          },
          "nonTranslatableInlineElements": {
            "type": "string",
            "description": "Example: \"code\""
          },
          "preserveWhitespace": {
            "type": "boolean",
            "description": "Default: false"
          },
          "segmentationBeginTagPlaceholder": {
            "type": "string"
          },
          "segmentationEndTagPlaceholder": {
            "type": "string"
          },
          "segmentationSingleTagPlaceholder": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          },
          "translatableAttributes": {
            "type": "string"
          },
          "translatableInlineElements": {
            "type": "string",
            "description": "Example: \"span\""
          },
          "translateMetaTagRegexp": {
            "type": "string"
          },
          "unknownTagCreatesTag": {
            "type": "boolean",
            "description": "Default: true"
          },
          "updateLang": {
            "type": "boolean",
            "description": "Default: false"
          }
        }
      },
      "HumanScience": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "HumanScienceSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "HumanTranslateJobsDtoV1": {
        "type": "object",
        "required": [
          "humanTranslateSettings",
          "jobs"
        ],
        "properties": {
          "callbackUrl": {
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "glossaryId": {
            "type": "string"
          },
          "humanTranslateSettings": {
            "$ref": "#/components/schemas/IdReference"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "level": {
            "type": "string",
            "enum": [
              "STANDARD",
              "PRO"
            ]
          },
          "usePreferredTranslators": {
            "type": "boolean"
          }
        }
      },
      "IdReference": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "IdmUserReferenceV1": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of the user"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          },
          "id": {
            "type": "string",
            "description": "Unique numeric identifier of the user"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "role": {
            "type": "string",
            "description": "Role of the user in the organization",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "suiteIdentifier": {
            "type": "string"
          },
          "uid": {
            "type": "string",
            "description": "Unique string identifier of the user"
          },
          "userName": {
            "type": "string",
            "description": "Username of the user"
          }
        }
      },
      "IdmlSettingsDtoV1": {
        "type": "object",
        "properties": {
          "extractCrossReferenceFormats": {
            "type": "boolean",
            "description": "Default: true. When true, extracts page numbers generated by cross-references."
          },
          "extractHiddenConditionalText": {
            "type": "boolean",
            "description": "Default: false. When true, extracts hidden conditional text."
          },
          "extractHyperlinks": {
            "type": "boolean",
            "description": "Default: false. When true, imports the hyperlink target as translatable content."
          },
          "extractInvisibleLayers": {
            "type": "boolean",
            "description": "Default: false. When true, extracts content from hidden/invisible layers."
          },
          "extractInvisibleObjects": {
            "type": "boolean",
            "description": "Default: true. When true, extracts content from hidden/invisible objects."
          },
          "extractLockedLayers": {
            "type": "boolean",
            "description": "Default: true. When true, extracts content from locked layers."
          },
          "extractLockedObjects": {
            "type": "boolean",
            "description": "Default: true. When true, extracts content from locked objects."
          },
          "extractMasterSpreads": {
            "type": "boolean",
            "description": "Default: true. When true, extracts text from InDesign master spreads."
          },
          "extractNotes": {
            "type": "boolean",
            "description": "Default: false. When true, extracts InDesign notes as translatable content."
          },
          "extractVariables": {
            "type": "boolean",
            "description": "Default: true. When true, extracts InDesign text variables as translatable content."
          },
          "keepKerning": {
            "type": "boolean",
            "description": "Default: false. When true, preserves custom kerning in the translated document."
          },
          "keepTracking": {
            "type": "boolean",
            "description": "Default: false. When true, preserves custom tracking (letter-spacing) in the translated document."
          },
          "removeXmlElements": {
            "type": "boolean",
            "description": "Default: false. When true, removes XML structure elements from the document."
          },
          "replaceFont": {
            "type": "boolean",
            "description": "Default: true. When true, replaces the document font with targetFont, or with the target language default font when targetFont is not set."
          },
          "simplifyCodes": {
            "type": "boolean",
            "description": "Default: true. When true, simplifies inline formatting tags in the extracted text."
          },
          "tagRegexp": {
            "type": "string",
            "description": "Regular expression matching substrings that should be converted to Phrase TMS tags (non-translatable)."
          },
          "targetFont": {
            "type": "string",
            "description": "Font applied to the translated text when replaceFont is true."
          }
        },
        "description": "Adobe InDesign (IDML) file import settings."
      },
      "ImportGlossaryResponseDtoV1": {
        "type": "object",
        "properties": {
          "createdTermsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Number of terms created during the import"
          },
          "langs": {
            "type": "array",
            "description": "Language codes imported into the glossary",
            "items": {
              "type": "string"
            }
          },
          "updatedTermsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Number of existing terms updated during the import"
          }
        }
      },
      "ImportSettingsCreateDtoV1": {
        "type": "object",
        "required": [
          "fileImportSettings",
          "name"
        ],
        "properties": {
          "fileImportSettings": {
            "$ref": "#/components/schemas/FileImportSettingsCreateDtoV1"
          },
          "name": {
            "type": "string",
            "description": "Name of the import settings"
          }
        },
        "description": "Request body for creating import settings"
      },
      "ImportSettingsDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the import settings were created"
          },
          "fileImportSettings": {
            "$ref": "#/components/schemas/FileImportSettingsDtoV1"
          },
          "name": {
            "type": "string",
            "description": "Name of the import settings"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        },
        "description": "Import settings, including file-type-specific configuration"
      },
      "ImportSettingsEditDtoV1": {
        "type": "object",
        "required": [
          "fileImportSettings",
          "name",
          "uid"
        ],
        "properties": {
          "fileImportSettings": {
            "$ref": "#/components/schemas/FileImportSettingsCreateDtoV1"
          },
          "name": {
            "type": "string",
            "description": "Name of the import settings"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the import settings to update"
          }
        },
        "description": "Request body for editing import settings"
      },
      "ImportSettingsReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportSettingsReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ImportSettingsReferenceV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the import settings were created"
          },
          "name": {
            "type": "string",
            "description": "Name of the import settings"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        },
        "description": "Lightweight reference to import settings"
      },
      "ImportStatusDtoV1": {
        "type": "object",
        "properties": {
          "errorMessage": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "RUNNING",
              "ERROR",
              "OK"
            ]
          }
        }
      },
      "ImportStatusDtoV2": {
        "type": "object",
        "properties": {
          "errorMessage": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "RUNNING",
              "ERROR",
              "OK"
            ]
          }
        }
      },
      "InconsistentTagContentWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "InconsistentTranslationWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "segmentId": {
                "type": "string"
              }
            }
          }
        ]
      },
      "InputStream": {
        "type": "object"
      },
      "InternalProjectDtoProgressDtoV1": {
        "type": "object",
        "properties": {
          "finishedCount": {
            "type": "integer",
            "format": "int32"
          },
          "overdueCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "InternalProjectDtoProgressDtoV2": {
        "type": "object",
        "properties": {
          "finishedCount": {
            "type": "integer",
            "format": "int32"
          },
          "overdueCount": {
            "type": "integer",
            "format": "int32"
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "IssueCountsDtoV1": {
        "type": "object",
        "required": [
          "critical",
          "criticalRepeated",
          "major",
          "majorRepeated",
          "minor",
          "minorRepeated",
          "neutral",
          "neutralRepeated"
        ],
        "properties": {
          "critical": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Number of critical-severity issues found."
          },
          "criticalRepeated": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Number of repeated critical-severity issues."
          },
          "major": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "Number of major-severity issues found."
          },
          "majorRepeated": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Number of repeated major-severity issues."
          },
          "minor": {
            "type": "integer",
            "format": "int32",
            "example": 3,
            "description": "Number of minor-severity issues found."
          },
          "minorRepeated": {
            "type": "integer",
            "format": "int32",
            "example": 1,
            "description": "Number of repeated minor-severity issues."
          },
          "neutral": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Number of neutral-severity issues found."
          },
          "neutralRepeated": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Number of repeated neutral-severity issues."
          }
        },
        "description": "Counts of LQA issues found in a job part, grouped by severity level and whether each occurrence is a repetition of an earlier issue in the same job."
      },
      "JOOMLA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "token"
            ],
            "properties": {
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string"
              },
              "token": {
                "type": "string"
              }
            }
          }
        ]
      },
      "JobCreateRemoteFileDtoV1": {
        "type": "object",
        "required": [
          "connectorToken",
          "remoteFileName"
        ],
        "properties": {
          "connectorToken": {
            "type": "string"
          },
          "continuous": {
            "type": "boolean"
          },
          "remoteFileName": {
            "type": "string"
          },
          "remoteFileNameRegex": {
            "type": "boolean"
          },
          "remoteFolder": {
            "type": "string"
          }
        }
      },
      "JobCreateRequestDtoV1": {
        "type": "object",
        "required": [
          "targetLangs"
        ],
        "properties": {
          "assignments": {
            "type": "array",
            "description": "only use for projects without workflows; otherwise specify in the workflowSettings object",
            "items": {
              "$ref": "#/components/schemas/ProvidersPerLanguage"
            }
          },
          "callbackUrl": {
            "type": "string"
          },
          "due": {
            "type": "string",
            "format": "date-time",
            "description": "only use for projects without workflows; otherwise specify in the workflowSettings object. Use ISO 8601 date format."
          },
          "idmlPreviewAssetsFileUidRef": {
            "$ref": "#/components/schemas/UidReference"
          },
          "importSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "jobPreviewPackageFileUidRef": {
            "$ref": "#/components/schemas/UidReference"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          },
          "path": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "preTranslate": {
            "type": "boolean"
          },
          "remoteFile": {
            "$ref": "#/components/schemas/JobCreateRemoteFileDtoV1"
          },
          "semanticMarkup": {
            "type": "boolean"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "useProjectFileImportSettings": {
            "type": "boolean",
            "description": "Default: false"
          },
          "workflowSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobCreateRequestDtoWorkflowStepConfiguration"
            }
          },
          "xmlAssistantProfile": {
            "$ref": "#/components/schemas/UidReference"
          }
        }
      },
      "JobCreateRequestDtoWorkflowStepConfiguration": {
        "type": "object",
        "required": [
          "assignments"
        ],
        "properties": {
          "assignments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProvidersPerLanguage"
            }
          },
          "due": {
            "type": "string",
            "format": "date-time",
            "description": "Use ISO 8601 date format."
          },
          "id": {
            "type": "string"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          }
        }
      },
      "JobExportActionDtoV3": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 1000,
            "minItems": 1
          }
        }
      },
      "JobExportResponseDtoV3": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "JobFilterDtoInternalV1": {
        "type": "object",
        "required": [
          "project"
        ],
        "properties": {
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "dueIn": {
            "type": "string",
            "enum": [
              "IN_4_HOURS",
              "IN_8_HOURS",
              "IN_24_HOURS",
              "IN_3_DAYS",
              "OVERDUE"
            ]
          },
          "filename": {
            "type": "string"
          },
          "jobOwner": {
            "$ref": "#/components/schemas/UidReference"
          },
          "project": {
            "$ref": "#/components/schemas/UidReference"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "sourcePath": {
            "type": "string"
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "NEW",
                "ACCEPTED",
                "DECLINED",
                "REJECTED",
                "DELIVERED",
                "EMAILED",
                "COMPLETED",
                "CANCELLED",
                "PRECEDING_COMPLETED",
                "PRECEDING_NOT_COMPLETED"
              ]
            }
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "JobListDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestReferenceV1"
          },
          "jobs": {
            "type": "array",
            "description": "Job parts created by the operation",
            "items": {
              "$ref": "#/components/schemas/A_reference_to_a_job_part_workflow-step_instance_of_a_job_"
            }
          },
          "unsupportedFiles": {
            "type": "array",
            "description": "Filenames that could not be imported because their format is unsupported",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "description": "Warnings raised during import, grouped by domain",
            "items": {
              "$ref": "#/components/schemas/JobListWarningDtoV1"
            }
          }
        }
      },
      "JobListWarningDtoV1": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "enum": [
              "STYLEGUIDE",
              "DUPLICATE_FILE"
            ]
          },
          "jobPartIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "message": {
            "type": "string"
          }
        }
      },
      "JobPartDeleteReferences": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "JobPartExtendedDtoV1": {
        "type": "object",
        "properties": {
          "beginIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Index of the first segment of this part within the original job"
          },
          "continuous": {
            "type": "boolean",
            "description": "When true, this is a continuous job"
          },
          "continuousJobInfo": {
            "$ref": "#/components/schemas/ContinuousJobInfoDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the job was created"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date of the job; null if not set"
          },
          "endIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Index of the last segment of this part within the original job"
          },
          "filename": {
            "type": "string",
            "description": "Original filename of the job"
          },
          "importStatus": {
            "$ref": "#/components/schemas/ImportStatusDtoV1"
          },
          "imported": {
            "type": "boolean",
            "description": "When true, the file has been imported successfully"
          },
          "innerId": {
            "type": "string",
            "description": "InnerId is a sequential number of a job in a project. Jobs created from the same file share the same innerId across workflow steps."
          },
          "isParentJobSplit": {
            "type": "boolean",
            "description": "Whether the job originates from a split"
          },
          "jobReference": {
            "$ref": "#/components/schemas/JobReferenceV1"
          },
          "lastWorkflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Highest workflow step level in the project"
          },
          "originalFileDirectory": {
            "type": "string",
            "description": "Directory path of the original source file"
          },
          "project": {
            "$ref": "#/components/schemas/A_reference_to_a_project"
          },
          "providers": {
            "type": "array",
            "description": "Providers assigned to the job. This field is empty for callers without\nlinguist visibility and does not reflect actual job assignment - it is not a reliable way to\ncheck whether anyone is assigned. To check your own assignment, use\nGET /api2/v1/users/{userUid}/jobs instead.",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "serverTaskId": {
            "type": "string",
            "description": "Identifier of the server-side import task"
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code"
          },
          "status": {
            "type": "string",
            "description": "Current status of the job",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          },
          "targetLang": {
            "type": "string",
            "description": "Target language code"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "updateSourceDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the source was last updated; null if never updated"
          },
          "updateTargetDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the target was last updated; null if never updated"
          },
          "wordsCount": {
            "type": "integer",
            "format": "int32",
            "description": "Number of words in the job"
          },
          "workUnit": {
            "$ref": "#/components/schemas/ObjectReference"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step level of this job (1-based)"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ProjectWorkflowStepReferenceV1"
          }
        }
      },
      "JobPartPatchBatchDtoV3": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "clearDateDue": {
            "type": "boolean",
            "description": "When true, clears the due date on the jobs."
          },
          "customFields": {
            "$ref": "#/components/schemas/UpdateCustomFieldInstancesDtoV1"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date to set on the jobs. Accepts an ISO 8601 date-time with a time zone designator (`Z` or a numeric offset such as `+00:00`/`-05:00`, e.g. `2026-08-29T15:50:00+00:00`); the same format without a designator (e.g. `2026-08-29T15:50:00`) returns 400 Bad Request. A space-separated `yyyy-MM-dd HH:mm` value (e.g. `2026-08-29 15:50`) has no offset and is interpreted as UTC. A legacy `MMM d, yyyy h:mm:ss a` value (e.g. `Aug 29, 2026 3:50:00 PM`) is also accepted and parsed in the server's default time zone, not UTC."
          },
          "jobs": {
            "type": "array",
            "description": "Job parts to update.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "providers": {
            "type": "array",
            "description": "Providers to assign to the jobs.",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "status": {
            "type": "string",
            "description": "Status to set on the jobs.",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          }
        }
      },
      "JobPartPatchResultDtoV3": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors and their counts encountered during the update",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV3"
            }
          },
          "updated": {
            "type": "integer",
            "format": "int32",
            "description": "Number of successfully updated job parts"
          }
        }
      },
      "JobPartPatchSingleDtoV1": {
        "type": "object",
        "properties": {
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date to set on the job. Accepts an ISO 8601 date-time with a time zone designator (`Z` or a numeric offset such as `+00:00`/`-05:00`, e.g. `2026-08-29T15:50:00+00:00`); the same format without a designator (e.g. `2026-08-29T15:50:00`) returns 400 Bad Request. A space-separated `yyyy-MM-dd HH:mm` value (e.g. `2026-08-29 15:50`) has no offset and is interpreted as UTC. A legacy `MMM d, yyyy h:mm:ss a` value (e.g. `Aug 29, 2026 3:50:00 PM`) is also accepted and parsed in the server's default time zone, not UTC."
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          }
        }
      },
      "JobPartReadyDeleteTranslationDtoV2": {
        "type": "object",
        "properties": {
          "deleteSettings": {
            "$ref": "#/components/schemas/TranslationSegmentsReferenceV2"
          },
          "filter": {
            "$ref": "#/components/schemas/JobPartReadyDeleteTranslationFilterDtoV2"
          },
          "forAllJobs": {
            "type": "boolean",
            "description": "Set true if you want to delete translations for all jobs from project from specific workflow step.\n               Default: false"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Specifies workflow level for all jobs"
          }
        }
      },
      "JobPartReadyDeleteTranslationFilterDtoV2": {
        "type": "object",
        "properties": {
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "dueInHours": {
            "type": "integer",
            "format": "int32"
          },
          "filename": {
            "type": "string"
          },
          "overdue": {
            "type": "boolean"
          },
          "owner": {
            "$ref": "#/components/schemas/UidReference"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "JobPartReadyReferences": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "JobPartReferenceV2": {
        "type": "object",
        "properties": {
          "continuous": {
            "type": "boolean"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "filename": {
            "type": "string"
          },
          "importStatus": {
            "$ref": "#/components/schemas/ImportStatusDtoV2"
          },
          "imported": {
            "type": "boolean",
            "description": "Default: false"
          },
          "innerId": {
            "type": "string",
            "description": "InnerId is a sequential number of a job in a project.\n            Jobs created from the same file share the same innerId across workflow steps"
          },
          "originalFileDirectory": {
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "providers": {
            "type": "array",
            "description": "Providers assigned to this job part. This field is empty for callers\nwithout linguist visibility and does not reflect actual job assignment - it is not a reliable\nway to check whether anyone is assigned. To check your own assignment, use\nGET /api2/v1/users/{userUid}/jobs instead.",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "remoteFile": {
            "$ref": "#/components/schemas/JobRemoteFileReferenceV1"
          },
          "serverTaskId": {
            "type": "string"
          },
          "sourceFileUid": {
            "type": "string"
          },
          "split": {
            "type": "boolean"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          },
          "targetLang": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ProjectWorkflowStepReferenceV1"
          }
        }
      },
      "JobPartReferences": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "References to job parts.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "JobPartSegmentsDtoV3": {
        "type": "object",
        "required": [
          "job",
          "segments"
        ],
        "properties": {
          "job": {
            "$ref": "#/components/schemas/UidReference"
          },
          "segments": {
            "type": "array",
            "description": "Segment identifiers within the job to run QA on",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "JobPartStatusChangeDtoV1": {
        "type": "object",
        "properties": {
          "changedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "changedDate": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          }
        }
      },
      "JobPartStatusChangesDtoV1": {
        "type": "object",
        "properties": {
          "statusChanges": {
            "type": "array",
            "description": "Status changes of the job, ordered by the requested sort order",
            "items": {
              "$ref": "#/components/schemas/JobPartStatusChangeDtoV1"
            }
          }
        }
      },
      "JobPartStatusChangesJobDtoV2": {
        "type": "object",
        "properties": {
          "jobUid": {
            "type": "string",
            "description": "Job UID"
          },
          "statusChanges": {
            "type": "array",
            "description": "Chronological list of status changes for this job",
            "items": {
              "$ref": "#/components/schemas/JobPartStatusChangeDtoV1"
            }
          }
        }
      },
      "JobPartStatusChangesProjectDtoV2": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Status changes grouped by job",
            "items": {
              "$ref": "#/components/schemas/JobPartStatusChangesJobDtoV2"
            }
          },
          "projectUid": {
            "type": "string",
            "description": "Project UID"
          }
        }
      },
      "JobPartStatusChangesReferences": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "List of 1-100 job UID references",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "JobPartTargetLangsDtoV1": {
        "type": "object",
        "required": [
          "jobPart",
          "targetLangs"
        ],
        "properties": {
          "jobPart": {
            "$ref": "#/components/schemas/UidReference"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "JobPartUpdateBatchDtoV1": {
        "type": "object",
        "required": [
          "status"
        ],
        "properties": {
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          }
        }
      },
      "JobPartUpdateSingleDtoV1": {
        "type": "object",
        "required": [
          "status"
        ],
        "properties": {
          "dateDue": {
            "type": "string",
            "format": "date-time"
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          }
        }
      },
      "JobPartUpdateSourceDtoV1": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          },
          "targetLang": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          }
        }
      },
      "JobPartUpdateTargetDtoV1": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "projectWorkflowStepReference": {
            "$ref": "#/components/schemas/ProjectWorkflowStepReferenceV1"
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          },
          "targetLang": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "JobPreviewPackageDtoV1": {
        "type": "object",
        "properties": {
          "createdByRef": {
            "$ref": "#/components/schemas/UserReferenceV3"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "fileName": {
            "type": "string"
          },
          "fileUid": {
            "type": "string"
          },
          "jobUidRef": {
            "$ref": "#/components/schemas/UidReference"
          },
          "organizationRef": {
            "$ref": "#/components/schemas/OrganizationReferenceJob"
          },
          "projectUidRef": {
            "$ref": "#/components/schemas/UidReference"
          },
          "taskId": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        },
        "description": "Job preview package"
      },
      "JobReferenceV1": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "JobReimportActionDtoV3": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Jobs to re-import the source file for. Must be UIDs of jobs already sourced from a\nconfigured connector/online-repository. 1 to 1000 jobs, and none of them may be split.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 1000,
            "minItems": 1
          }
        }
      },
      "JobReimportResponseDtoV3": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "description": "References to the jobs that were actually re-imported — the subset of the requested\njobs that succeeded, not an echo of the request. Jobs with no connector/online-repository source are omitted\nhere without any error being raised.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "JobReimportTargetActionDtoV3": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Jobs to re-import the target file for. Must be UIDs of jobs already sourced from a\nconfigured connector/online-repository, previously exported to it, and whose connector type supports target\nreimport (currently only `PHRASE`). Jobs from other connector types, or jobs never exported, are silently\nomitted from the response. 1 to 1000 jobs.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 1000,
            "minItems": 1
          }
        }
      },
      "JobRemoteFileReferenceV1": {
        "type": "object",
        "properties": {
          "encodedFileName": {
            "type": "string"
          },
          "encodedFolder": {
            "type": "string"
          },
          "humanReadableFileName": {
            "type": "string"
          },
          "humanReadableFolder": {
            "type": "string"
          }
        }
      },
      "JobRoleDtoV1": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "organizationType": {
            "type": "string",
            "description": "not null only for shared projects",
            "enum": [
              "VENDOR",
              "BUYER"
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "PROJECT_OWNER",
              "JOB_OWNER",
              "PROVIDER",
              "GUEST"
            ]
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ProjectWorkflowStepDtoV2"
          }
        }
      },
      "JobSegmentDto": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "integer",
            "format": "int64"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "id": {
            "type": "string"
          },
          "modifiedAt": {
            "type": "integer",
            "format": "int64"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "source": {
            "type": "string"
          },
          "translation": {
            "type": "string"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepDtoV1"
          }
        }
      },
      "JobStatusChangeActionDtoV1": {
        "type": "object",
        "required": [
          "requestedStatus"
        ],
        "properties": {
          "notifyOwner": {
            "type": "boolean",
            "description": "Default: false; Both project owner and job owner are notified;\n                    the parameter is subordinated to notification settings in the project"
          },
          "propagateStatus": {
            "type": "boolean",
            "description": "Default: false;\n        Controls both job status and email notifications to previous/next provider"
          },
          "requestedStatus": {
            "type": "string",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          }
        }
      },
      "JobUpdateSourceResponseDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestReferenceV1"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobPartUpdateSourceDtoV1"
            }
          }
        }
      },
      "JobUpdateTargetResponseDtoV1": {
        "type": "object",
        "properties": {
          "asyncRequest": {
            "$ref": "#/components/schemas/AsyncRequestReferenceV1"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobPartUpdateTargetDtoV1"
            }
          }
        }
      },
      "JobViewConfigurationDtoV1": {
        "type": "object",
        "required": [
          "content",
          "lastSelected",
          "name"
        ],
        "properties": {
          "content": {
            "type": "object",
            "description": "Freeform JSON object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "lastSelected": {
            "type": "string",
            "format": "date-time",
            "description": "Date & time when the configuration was last selected (ISO 8601)"
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration",
            "minLength": 1,
            "maxLength": 255
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "JobViewConfigurationsDtoV1": {
        "type": "object",
        "properties": {
          "jobViewConfigurations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobViewConfigurationDtoV1"
            }
          }
        }
      },
      "JobWidgetReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "JoinTagsWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "sourceTagsCount": {
                "type": "integer",
                "format": "int32",
                "description": "Number of tags in the source segments that were joined"
              },
              "translationTagsCount": {
                "type": "integer",
                "format": "int32",
                "description": "Number of tags in the translation of the joined segments"
              }
            }
          }
        ]
      },
      "JsonSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeyPath": {
            "type": "string",
            "description": "Path to the sibling key whose value is used as the context key for a translatable key, using the `../@name` placeholder syntax (e.g. `../@context1`). See the class-level description for the full path syntax, the exclusion caveat, and a worked example."
          },
          "contextNotePath": {
            "type": "string",
            "description": "Path to the sibling key whose value is used as the context note for a translatable key, using the `../@name` placeholder syntax (e.g. `../@context2`). See the class-level description for the full path syntax, the exclusion caveat, and a worked example."
          },
          "excludeKeyRegexp": {
            "type": "string",
            "description": "Regular expression matched against the full path to a key (e.g. `[2]/parent/child/key`, not just the bare key name) to exclude the matching key and its value from translation. See the class-level description for the path syntax, a worked example, and how this interacts with `contextNotePath`/`contextKeyPath`."
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: true"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "includeKeyRegexp": {
            "type": "string",
            "description": "Regular expression matched against the full path to a key (e.g. `[2]/parent/child/key`, not just the bare key name) restricting translation to only the matching keys. See `excludeKeyRegexp` and the class-level description."
          },
          "maxLenPath": {
            "type": "string",
            "description": "Path to the key whose value is used as the max length of a translatable value, using the `@name` placeholder syntax (e.g. `@maxlength`). Differs from `contextNotePath`/`contextKeyPath` in that the referenced key sits alongside the value itself rather than one level up alongside the key - see the class-level description."
          },
          "tagRegexp": {
            "type": "string",
            "description": "Regular expression matching substrings of a translatable JSON string value that should be converted to Phrase TMS tags (non-translatable), e.g. to protect placeholders like `{0}` or `%s`. Does not affect which keys are imported."
          }
        },
        "description": "JSON import settings. `contextNotePath`, `maxLenPath` and `contextKeyPath` use a placeholder path syntax (e.g. `../@context2`, `@maxlength`, `../@context1`) to point at a sibling key holding the note/max-length/context-key value for a translatable key: `../` steps up to the translatable key's parent object, then `@name` addresses the sibling key `name` there. `maxLenPath` differs from the other two: its referenced key sits alongside the translatable value itself, not alongside the translatable key one level up, since a max length constrains the value rather than the key.\n\nConfiguring `contextNotePath`/`contextKeyPath` does NOT automatically exclude the referenced key from translation - it must also be matched by `excludeKeyRegexp` (or left unmatched by `includeKeyRegexp`), otherwise it is additionally imported as its own translatable segment.\n\n`excludeKeyRegexp`/`includeKeyRegexp` match the full path to a key (e.g. `[2]/parent/child/key`), not just its bare name - the same slash-separated, `[N]`-indexed path syntax as `contextNotePath`/`maxLenPath`/`contextKeyPath`, and as the XML file format's `contextNoteXpath`/`maxLenXPath`/`contextKeyXPath` settings.\n\nExample: given\n```json\n[\n  { \"key\": \"Home\" },\n  { \"key\": \"About\" },\n  { \"parent\": { \"child\": {\n    \"key\": \"Hello world\", \"context1\": \"greeting_id\",\n    \"context2\": \"Shown on the homepage banner\", \"maxlength\": \"40\"\n  } } }\n]\n```\nwith `contextKeyPath=../@context1`, `contextNotePath=../@context2`, `maxLenPath=@maxlength` and `excludeKeyRegexp=.*/(context1|context2|maxlength)$`: `[0]/key` (\"Home\") and `[1]/key` (\"About\") import as plain segments; `[2]/parent/child/key` (\"Hello world\") imports with context key `greeting_id`, context note `Shown on the homepage banner` and max length `40`; `[2]/parent/child/context1`, `.../context2` and `.../maxlength` are excluded from translation by `excludeKeyRegexp` - without it they would additionally be imported as their own translatable segments."
      },
      "Jukkou": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "category"
            ],
            "properties": {
              "category": {
                "type": "string",
                "description": "Enter 101 for Legal, 476 for Medical, 333 for Finance.",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "JukkouSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "companyId",
              "password",
              "userId"
            ],
            "properties": {
              "companyId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "userId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "KENTICO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "password",
              "userName"
            ],
            "properties": {
              "host": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              },
              "userName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "KENTICO_KONTENT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "kontentApiKey",
              "kontentDeliveryKey",
              "kontentProjectId"
            ],
            "properties": {
              "kontentApiKey": {
                "type": "string"
              },
              "kontentContentImport": {
                "type": "string"
              },
              "kontentDeliveryKey": {
                "type": "string"
              },
              "kontentLanguagesFieldId": {
                "type": "string"
              },
              "kontentProjectId": {
                "type": "string"
              },
              "kontentWFExportSource": {
                "type": "string"
              },
              "kontentWFExportTranslate": {
                "type": "string"
              },
              "kontentWFObserved": {
                "type": "string"
              },
              "kontentWFUponImport": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              }
            }
          }
        ]
      },
      "KantanMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "KantanMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "profile",
              "token"
            ],
            "properties": {
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "token": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "Kodensha": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "KodenshaSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "accountName": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "LINGUIST": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "clients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "domains": {
                "type": "array",
                "description": "Domains the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned domains",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "editAllTermsInTB": {
                "type": "boolean",
                "description": "Edit all terms in TB. Default: false"
              },
              "editTranslationsInTM": {
                "type": "boolean",
                "description": "Edit translations in TM. Default: false"
              },
              "enableMT": {
                "type": "boolean",
                "description": "Enable MT. Default: true"
              },
              "mayCompleteUnconfirmedJobs": {
                "type": "boolean",
                "description": "Complete unconfirmed jobs. Default: false"
              },
              "mayRejectJobs": {
                "type": "boolean",
                "description": "Reject jobs. Default: false"
              },
              "netRateScheme": {
                "$ref": "#/components/schemas/UidReference"
              },
              "sourceLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subDomains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "targetLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "translationPriceList": {
                "$ref": "#/components/schemas/UidReference"
              },
              "workflowSteps": {
                "type": "array",
                "description": "Workflow steps the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned workflow steps",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              }
            }
          }
        ]
      },
      "LINGUIST_EDIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserEditDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "clients": {
                "type": "array",
                "description": "Clients the user is restricted to",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "domains": {
                "type": "array",
                "description": "Domains the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned domains",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "editAllTermsInTB": {
                "type": "boolean",
                "description": "Edit all terms in TB. Default: false"
              },
              "editTranslationsInTM": {
                "type": "boolean",
                "description": "Edit translations in TM. Default: false"
              },
              "enableMT": {
                "type": "boolean",
                "description": "Enable MT. Default: true"
              },
              "mayCompleteUnconfirmedJobs": {
                "type": "boolean",
                "description": "Complete unconfirmed jobs. Default: false"
              },
              "mayRejectJobs": {
                "type": "boolean",
                "description": "Reject jobs. Default: false"
              },
              "netRateScheme": {
                "$ref": "#/components/schemas/UidReference"
              },
              "sourceLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subDomains": {
                "type": "array",
                "description": "Sub-domains the user is restricted to",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "targetLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "translationPriceList": {
                "$ref": "#/components/schemas/UidReference"
              },
              "workflowSteps": {
                "type": "array",
                "description": "Workflow steps the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned workflow steps",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              }
            }
          }
        ]
      },
      "LINGUIST_RESPONSE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserDetailsDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "clients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "domains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DomainReferenceV3"
                }
              },
              "editAllTermsInTB": {
                "type": "boolean",
                "description": "When true, the linguist may edit/delete already-approved terms via PUT/DELETE /api2/v1/termBases/{termBaseUid}/terms/{termId}, and create terms with status Approved via POST /api2/v1/termBases/{termBaseUid}/terms; when false, the linguist can still create terms and edit/delete terms with status New."
              },
              "editTranslationsInTM": {
                "type": "boolean",
                "description": "When true, the linguist may edit translation memory content"
              },
              "enableMT": {
                "type": "boolean",
                "description": "When true, machine translation is enabled for the linguist in the editor"
              },
              "mayCompleteUnconfirmedJobs": {
                "type": "boolean",
                "description": "When true, the linguist may complete jobs containing unconfirmed segments"
              },
              "mayRejectJobs": {
                "type": "boolean",
                "description": "When true, the linguist may reject jobs"
              },
              "netRateScheme": {
                "$ref": "#/components/schemas/DiscountSchemeReferenceV3"
              },
              "sourceLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subDomains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubDomainReferenceV3"
                }
              },
              "targetLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "translationPriceList": {
                "$ref": "#/components/schemas/PriceListReferenceV1"
              },
              "workflowSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkflowStepReferenceV3"
                }
              }
            }
          }
        ]
      },
      "LQAConversationDtoV1": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "description": "List of comments in the conversation",
            "items": {
              "$ref": "#/components/schemas/CommentDtoV1"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/MentionableUserDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was created"
          },
          "dateEdited": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was last edited by a user"
          },
          "dateModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was last modified"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether the conversation has been deleted"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the conversation"
          },
          "lqaDescription": {
            "type": "string",
            "description": "Description of the LQA issue"
          },
          "references": {
            "$ref": "#/components/schemas/LQAReferences"
          },
          "status": {
            "$ref": "#/components/schemas/StatusDtoV1"
          },
          "type": {
            "type": "string",
            "description": "LQA"
          }
        }
      },
      "LQAConversationsListDtoV1": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "description": "List of LQA conversations",
            "items": {
              "$ref": "#/components/schemas/LQAConversationDtoV1"
            }
          }
        }
      },
      "LQAReferences": {
        "type": "object",
        "required": [
          "lqa",
          "segmentId",
          "transGroupId"
        ],
        "properties": {
          "commentedText": {
            "type": "string",
            "description": "Portion of the target text that the conversation refers to"
          },
          "conversationTitle": {
            "type": "string",
            "description": "Title of the conversation, typically the source segment text"
          },
          "conversationTitleOffset": {
            "type": "integer",
            "format": "int32",
            "description": "Character offset of the conversation title within the segment",
            "minimum": 0
          },
          "correlation": {
            "$ref": "#/components/schemas/ReferenceCorrelation"
          },
          "jobPartUid": {
            "type": "string",
            "readOnly": true
          },
          "lqa": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LQAReferencesLQAReferenceV1"
            },
            "maxItems": 1,
            "minItems": 1
          },
          "segmentId": {
            "type": "string"
          },
          "taskId": {
            "type": "string",
            "readOnly": true
          },
          "transGroupId": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      },
      "LQAReferencesLQAReferenceV1": {
        "type": "object",
        "required": [
          "errorCategoryId",
          "severityId"
        ],
        "properties": {
          "errorCategoryId": {
            "type": "integer",
            "format": "int32",
            "minimum": 1
          },
          "origin": {
            "type": "string",
            "enum": [
              "HUMAN"
            ]
          },
          "originator": {
            "$ref": "#/components/schemas/MentionableUserDtoV1"
          },
          "repeated": {
            "type": "string",
            "description": "Default: `NOT_REPEATED`",
            "enum": [
              "REPEATED",
              "NOT_REPEATED"
            ]
          },
          "severityId": {
            "type": "integer",
            "format": "int32",
            "minimum": 1
          },
          "user": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "LanguageAssetsSearchRequestDtoLanguageAssetsV1": {
        "type": "object",
        "required": [
          "queries",
          "sourceLocale",
          "targetLocales"
        ],
        "properties": {
          "clientId": {
            "type": "string",
            "example": "TZTenUqAlyWE4NmAvQRMq1",
            "description": "When provided, only Term Bases and Translation Memories assigned to this client are searched. If not provided, all Term Bases and Translation Memories are searched."
          },
          "queries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchAssetsQueryDtoLanguageAssetsV1"
            },
            "maxItems": 50,
            "minItems": 0
          },
          "sourceLocale": {
            "type": "string"
          },
          "targetLocales": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "LanguageAssetsSearchResponseDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "metadata": {
            "$ref": "#/components/schemas/SearchMetadataDtoLanguageAssetsV1"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchAssetsQueryResultDtoLanguageAssetsV1"
            }
          }
        }
      },
      "LanguageDto": {
        "type": "object",
        "properties": {
          "cloudLocale": {
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "remoteLocale": {
            "type": "string"
          },
          "source": {
            "type": "boolean"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "LanguageListDtoLanguageDtoV1": {
        "type": "object",
        "properties": {
          "android": {
            "type": "string",
            "description": "Android locale identifier with the region prefixed by 'r'."
          },
          "androidBcp": {
            "type": "string",
            "description": "Android locale identifier prefixed with 'b+'."
          },
          "code": {
            "type": "string",
            "description": "Phrase locale code identifying the language (for example en or en_gb)."
          },
          "name": {
            "type": "string",
            "description": "English name of the language."
          },
          "rfc": {
            "type": "string",
            "description": "Language code in RFC 5646 format."
          },
          "rtl": {
            "type": "boolean",
            "description": "When true, the language is written right-to-left."
          }
        },
        "description": "A single language supported by the platform."
      },
      "LanguageListDtoV1": {
        "type": "object",
        "required": [
          "languages"
        ],
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LanguageListDtoLanguageDtoV1"
            }
          }
        },
        "description": "Envelope for the list of languages."
      },
      "LastLoginDtoV1": {
        "type": "object",
        "properties": {
          "lastLoginDate": {
            "type": "string",
            "format": "date-time"
          },
          "user": {
            "$ref": "#/components/schemas/UserReferenceV1"
          }
        }
      },
      "LastLoginPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LastLoginDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "LeadingAndTrailingSpacesWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "srcPosition": {
                "$ref": "#/components/schemas/Position"
              },
              "srcWhitespaces": {
                "type": "string"
              },
              "suggestion": {
                "$ref": "#/components/schemas/Suggestion"
              },
              "tgtPosition": {
                "$ref": "#/components/schemas/Position"
              },
              "tgtWhitespaces": {
                "type": "string"
              }
            }
          }
        ]
      },
      "Linguist": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractProjectDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "LinkProjectToContentGroupDtoV1": {
        "type": "object",
        "required": [
          "contentGroupId"
        ],
        "properties": {
          "contentGroupId": {
            "type": "string",
            "description": "Unique identifier of the content group to link"
          }
        }
      },
      "ListSegmentsV2RequestDtoV2": {
        "type": "object",
        "required": [
          "pageNumber",
          "pageSize",
          "searchInLocale"
        ],
        "properties": {
          "pageNumber": {
            "type": "integer",
            "format": "int32",
            "description": "Page number, starting with 0, default 0; must be >= 0",
            "minimum": 0
          },
          "pageSize": {
            "type": "integer",
            "format": "int32",
            "description": "Page size, accepts values between 1 and 100, default 50",
            "minimum": 1,
            "maximum": 100
          },
          "query": {
            "type": "string",
            "description": "Search query. When null or blank, \"*\" is used (matches all segments)."
          },
          "searchInLocale": {
            "type": "string",
            "description": "Language to search in."
          },
          "showLocales": {
            "type": "array",
            "description": "Languages to show in response. When empty or null, all TM languages are used.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "LocaleConventionWeightsDto": {
        "type": "object",
        "properties": {
          "addressFormat": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "currencyFormat": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "dateFormat": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "localeConvention": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "measurementFormat": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "shortcutKey": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "telephoneFormat": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "LoginOtherV3DtoV3": {
        "type": "object",
        "required": [
          "userName"
        ],
        "properties": {
          "userName": {
            "type": "string",
            "description": "Username of the user to log in as",
            "minLength": 0,
            "maxLength": 255
          },
          "userUid": {
            "type": "string",
            "description": "When not filled, default user of identity will be logged in"
          }
        },
        "description": "Request to log in as another user"
      },
      "LoginResponseDtoV1": {
        "type": "object",
        "properties": {
          "expires": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the API token expires"
          },
          "lastInvalidateAllSessionsPerformed": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when all sessions were last invalidated for the user"
          },
          "token": {
            "type": "string",
            "description": "API token to authenticate subsequent requests"
          },
          "user": {
            "$ref": "#/components/schemas/UserReferenceV1"
          }
        },
        "description": "Successful login response containing the API token and the logged-in user"
      },
      "LoginResponseV3DtoV3": {
        "type": "object",
        "properties": {
          "expires": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the API token expires"
          },
          "lastInvalidateAllSessionsPerformed": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when all sessions were last invalidated for the user"
          },
          "token": {
            "type": "string",
            "description": "API token to authenticate subsequent requests"
          },
          "user": {
            "$ref": "#/components/schemas/UserReferenceV1"
          }
        },
        "description": "Successful login response containing the API token and the logged-in user"
      },
      "LoginToSessionResponseV3DtoV3": {
        "type": "object",
        "properties": {
          "cookie": {
            "type": "string",
            "description": "Session cookie identifier"
          },
          "csrfToken": {
            "type": "string",
            "description": "CSRF token to send with subsequent session requests"
          },
          "user": {
            "$ref": "#/components/schemas/UserReferenceV1"
          }
        },
        "description": "Response of a successful session login"
      },
      "LoginToSessionV3DtoV3": {
        "type": "object",
        "required": [
          "password",
          "userName"
        ],
        "properties": {
          "password": {
            "type": "string",
            "description": "Password",
            "minLength": 0,
            "maxLength": 255
          },
          "rememberMe": {
            "type": "boolean",
            "description": "When true, the session is kept alive beyond the default expiration"
          },
          "twoFactorCode": {
            "type": "integer",
            "format": "int32",
            "description": "Two-factor authentication code. Required if two-factor authentication is enabled"
          },
          "userName": {
            "type": "string",
            "description": "Username",
            "minLength": 0,
            "maxLength": 255
          },
          "userUid": {
            "type": "string",
            "description": "When not filled, default user of identity will be logged in"
          }
        },
        "description": "Credentials for logging in to a browser session"
      },
      "LoginUserDtoLoginUserEditionDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Edition name"
          }
        },
        "description": "Product edition of an organization"
      },
      "LoginUserDtoV1": {
        "type": "object",
        "properties": {
          "csrfToken": {
            "type": "string",
            "description": "CSRF token for the current session"
          },
          "edition": {
            "$ref": "#/components/schemas/LoginUserDtoLoginUserEditionDtoV1"
          },
          "features": {
            "$ref": "#/components/schemas/FeaturesDtoV1"
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationReferenceV1"
          },
          "user": {
            "$ref": "#/components/schemas/IdmUserReferenceV1"
          }
        },
        "description": "The currently authenticated user and their account context"
      },
      "LoginV3DtoV3": {
        "type": "object",
        "required": [
          "password",
          "userName"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Required only for 2-factor authentication",
            "minLength": 0,
            "maxLength": 255
          },
          "password": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "userName": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "userUid": {
            "type": "string",
            "description": "When not filled, default user of identity will be logged in"
          }
        }
      },
      "LoginWithAppleDtoV1": {
        "type": "object",
        "required": [
          "codeOrRefreshToken"
        ],
        "properties": {
          "codeOrRefreshToken": {
            "type": "string",
            "description": "Apple authorization code or refresh token"
          }
        },
        "description": "Request to log in with an Apple authorization code or refresh token"
      },
      "LoginWithGoogleDtoV1": {
        "type": "object",
        "required": [
          "idToken"
        ],
        "properties": {
          "idToken": {
            "type": "string",
            "description": "Google ID token obtained from Google Sign-In"
          }
        },
        "description": "Request to log in with a Google ID token"
      },
      "LqaErrorCategoryDto": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "errorCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LqaErrorCategoryDto"
            }
          },
          "errorCategoryId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "LqaProfileAssessmentDtoV1": {
        "type": "object",
        "required": [
          "dateCreated",
          "errorCategories",
          "isDefault",
          "name",
          "organization",
          "passFailThreshold",
          "penaltyPoints",
          "uid"
        ],
        "properties": {
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2024-03-15T09:00:00Z",
            "description": "Date and time when the profile was created (ISO 8601 date-time)"
          },
          "errorCategories": {
            "$ref": "#/components/schemas/ErrorCategoriesDto"
          },
          "isDefault": {
            "type": "boolean",
            "description": "Whether this profile is set as the default for the organization"
          },
          "name": {
            "type": "string",
            "description": "Name of the profile"
          },
          "organization": {
            "$ref": "#/components/schemas/UidReference"
          },
          "passFailThreshold": {
            "$ref": "#/components/schemas/PassFailThresholdDto"
          },
          "penaltyPoints": {
            "$ref": "#/components/schemas/PenaltyPointsDto"
          },
          "uid": {
            "type": "string",
            "example": "LqP8kMckeDcg",
            "description": "Unique identifier (UID) of the profile"
          }
        },
        "description": "LQA (Language Quality Assessment) profile snapshot applied to an assessment"
      },
      "LqaProfileDetailDtoV1": {
        "type": "object",
        "required": [
          "createdBy",
          "dateCreated",
          "errorCategories",
          "isDefault",
          "name",
          "organization",
          "passFailThreshold",
          "penaltyPoints",
          "uid"
        ],
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the profile was created"
          },
          "errorCategories": {
            "$ref": "#/components/schemas/ErrorCategoriesDto"
          },
          "isDefault": {
            "type": "boolean",
            "description": "If profile is set as default for organization"
          },
          "name": {
            "type": "string",
            "description": "Name of the profile"
          },
          "organization": {
            "$ref": "#/components/schemas/UidReference"
          },
          "passFailThreshold": {
            "$ref": "#/components/schemas/PassFailThresholdDto"
          },
          "penaltyPoints": {
            "$ref": "#/components/schemas/PenaltyPointsDto"
          },
          "uid": {
            "type": "string",
            "example": "string",
            "description": "UID of the profile"
          }
        }
      },
      "LqaProfileReferenceDtoV1": {
        "type": "object",
        "required": [
          "createdBy",
          "dateCreated",
          "isDefault",
          "name",
          "organization",
          "uid"
        ],
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "When profile was created"
          },
          "isDefault": {
            "type": "boolean",
            "description": "If profile is set as default for organization"
          },
          "name": {
            "type": "string",
            "description": "Name of the profile"
          },
          "organization": {
            "$ref": "#/components/schemas/UidReference"
          },
          "uid": {
            "type": "string",
            "example": "string",
            "description": "UID of the profile"
          }
        }
      },
      "LqaProfileReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LqaProfileReferenceDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "LqaProfilesForWsV2DtoV2": {
        "type": "object",
        "properties": {
          "lqaProfile": {
            "$ref": "#/components/schemas/UidReference"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "LqaProfilesForWsV3DtoV3": {
        "type": "object",
        "properties": {
          "lqaProfile": {
            "$ref": "#/components/schemas/UidReference"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "LqaReportEmailRequestDtoV1": {
        "type": "object",
        "required": [
          "jobParts",
          "recipientUsers"
        ],
        "properties": {
          "bccAddress": {
            "type": "string",
            "description": "BCC email address for the report email. Must be a valid email address."
          },
          "ccAddress": {
            "type": "string",
            "description": "CC email address for the report email. Must be a valid email address."
          },
          "jobParts": {
            "type": "array",
            "description": "Job parts for which the LQA reports should be sent. Between 1 and 100 entries.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 0
          },
          "message": {
            "type": "string",
            "description": "Body text for the outgoing email. When organizationEmailTemplate is supplied, this value replaces the template body; otherwise it is inserted into the default email template."
          },
          "organizationEmailTemplate": {
            "$ref": "#/components/schemas/UidReference"
          },
          "recipientUsers": {
            "type": "array",
            "description": "Users who will receive the LQA report email. Between 1 and 100 entries.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 0
          },
          "subject": {
            "type": "string",
            "description": "Subject line of the report email. Must be at least 1 character when supplied. Null uses the default subject from the email template.",
            "minLength": 1,
            "maxLength": 2147483647
          }
        },
        "description": "Request body for sending LQA (Language Quality Assessment) report emails."
      },
      "LqaReportLinkDtoV1": {
        "type": "object",
        "properties": {
          "expires": {
            "type": "string",
            "format": "date-time",
            "description": "When link expires"
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "description": "Size of the linked file in bytes"
          },
          "url": {
            "type": "string",
            "description": "Link of the report"
          }
        },
        "description": "Sharable link of LQA report"
      },
      "LqaReportRecipientDtoV1": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "organizationName": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "USER",
              "ORGANIZATION"
            ]
          },
          "userUid": {
            "type": "string"
          },
          "username": {
            "type": "string"
          }
        }
      },
      "LqaSettingsDto": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LqaErrorCategoryDto"
            }
          },
          "enabled": {
            "type": "boolean"
          },
          "severities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LqaSeverityDto"
            }
          }
        }
      },
      "LqaSeverityDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "severityId": {
            "type": "integer",
            "format": "int32"
          },
          "weight": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MAGENTO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "token"
            ],
            "properties": {
              "host": {
                "type": "string"
              },
              "token": {
                "type": "string"
              }
            }
          }
        ]
      },
      "MARKETO": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "apiSecret",
              "marketoConnectorType"
            ],
            "properties": {
              "apiKey": {
                "type": "string"
              },
              "apiSecret": {
                "type": "string"
              },
              "debugMode": {
                "type": "boolean"
              },
              "identityURL": {
                "type": "string"
              },
              "marketoConnectorType": {
                "type": "string",
                "enum": [
                  "SEPARATED_ASSET",
                  "SEGMENTED_DYNAMIC_CONTENT"
                ]
              },
              "marketoSegmentationMapping": {
                "$ref": "#/components/schemas/MarketoSegmentationMappingDto"
              },
              "marketoTranslateSnippets": {
                "type": "boolean"
              },
              "marketoTranslateTokens": {
                "type": "boolean"
              },
              "marketoWorkspace": {
                "type": "string"
              },
              "variables": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VariableDto"
                }
              }
            }
          }
        ]
      },
      "MORAVIA": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QACheckDtoV2"
          },
          {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "When true, this check is active"
              },
              "ignorable": {
                "type": "boolean",
                "description": "When true, linguists may mark violations of this check as ignored"
              },
              "instant": {
                "type": "boolean",
                "description": "When true, violations are highlighted immediately during translation"
              },
              "profile": {
                "type": "string",
                "description": "Moravia QA profile identifier"
              }
            }
          }
        ]
      },
      "MTSettingsPerLanguageDtoV1": {
        "type": "object",
        "required": [
          "targetLang"
        ],
        "properties": {
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/MachineTranslateSettingsDtoV1"
          },
          "targetLang": {
            "type": "string",
            "description": "mtSettings is set for whole project if targetLang == null"
          }
        }
      },
      "MTSettingsPerLanguageListDtoV1": {
        "type": "object",
        "properties": {
          "mtSettingsPerLangList": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/MTSettingsPerLanguageDtoV1"
            }
          }
        }
      },
      "MTSettingsPerLanguageReferenceV1": {
        "type": "object",
        "required": [
          "targetLang"
        ],
        "properties": {
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/MachineTranslateSettingsReferenceV1"
          },
          "targetLang": {
            "type": "string",
            "description": "mtSettings is set for whole project if targetLang == null"
          }
        }
      },
      "MacSettingsDtoV1": {
        "type": "object",
        "properties": {
          "htmlSubfilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "MachineTranslateEngineV2DtoV2": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean",
            "example": true,
            "description": "Whether the engine is enabled. The engine is still present in the parent profile's `engines` array when this is false - a disabled engine is a different finding from an engine not existing at all."
          },
          "name": {
            "type": "string",
            "example": "Phrase Language AI (Google Translate)",
            "description": "Display name of the engine"
          },
          "terminologySource": {
            "type": "string",
            "example": "GLOSSARY",
            "description": "Terminology resource this engine can use for glossary matching",
            "enum": [
              "NONE",
              "GLOSSARY",
              "TERM_BASE"
            ]
          },
          "type": {
            "type": "string",
            "example": "GOOGLE_V3_TRANSLATE",
            "description": "Engine type identifier"
          },
          "uid": {
            "type": "string",
            "example": "B85nrNc1rGdxIsjJv3zH3o",
            "description": "Unique identifier of the engine"
          }
        },
        "description": "An MT engine attached to a Language AI profile."
      },
      "MachineTranslateResponse": {
        "type": "object",
        "properties": {
          "translations": {
            "type": "array",
            "description": "Translated strings in the same order as the input sourceTexts.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Response from an MT translation request, containing the translated strings."
      },
      "MachineTranslateSettingsDtoV1": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "description": "Engine-specific configuration parameters",
            "additionalProperties": {
              "type": "object"
            }
          },
          "baseName": {
            "type": "string",
            "description": "Base class name of the engine"
          },
          "category": {
            "type": "string",
            "description": "Translation category"
          },
          "default_": {
            "type": "boolean",
            "description": "When true, this is the default MT engine for the organization"
          },
          "enabled": {
            "type": "boolean",
            "description": "When true, the MT engine is active and available for use"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "includeTags": {
            "type": "boolean",
            "description": "When true, HTML tags are included in translation requests"
          },
          "langs": {
            "$ref": "#/components/schemas/MachineTranslateSettingsLangsDtoV1"
          },
          "mtQualityEstimation": {
            "type": "boolean",
            "description": "When true, MT quality estimation scores are enabled"
          },
          "name": {
            "type": "string",
            "description": "Display name of the machine translate engine"
          },
          "type": {
            "type": "string",
            "description": "Machine translate engine type"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "MachineTranslateSettingsLangsDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Id"
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language for CUSTOMIZABLE engine"
          },
          "targetLangs": {
            "type": "array",
            "description": "List of target languages for the CUSTOMIZABLE engine",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "MachineTranslateSettingsPbmDtoV1": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "description": "Engine-specific configuration parameters",
            "additionalProperties": {
              "type": "object"
            }
          },
          "baseName": {
            "type": "string",
            "description": "Base class name of the engine"
          },
          "charCount": {
            "type": "integer",
            "format": "int32",
            "description": "Number of characters translated; null if not tracked"
          },
          "default_": {
            "type": "boolean",
            "description": "When true, this is the default MT engine for the organization"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "includeTags": {
            "type": "boolean",
            "description": "When true, HTML tags are included in translation requests"
          },
          "langs": {
            "$ref": "#/components/schemas/MachineTranslateSettingsLangsDtoV1"
          },
          "mtQualityEstimation": {
            "type": "boolean",
            "description": "When true, MT quality estimation scores are enabled"
          },
          "name": {
            "type": "string",
            "description": "Display name of the machine translate engine"
          },
          "payForMtActive": {
            "type": "boolean",
            "description": "When true, pay-per-MT billing is currently active for this engine"
          },
          "payForMtPossible": {
            "type": "boolean",
            "description": "When true, pay-per-MT billing is available for this engine"
          },
          "sharingSettings": {
            "type": "integer",
            "format": "int32",
            "description": "Sharing settings bitmask"
          },
          "type": {
            "type": "string",
            "description": "Machine translate engine type"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "MachineTranslateSettingsPbmPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MachineTranslateSettingsPbmDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MachineTranslateSettingsReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "MachineTranslateSettingsSecretsDtoV1": {
        "type": "object",
        "required": [
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the secret with predefined Enumeration"
          }
        }
      },
      "MachineTranslateStatusDtoV1": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Error message returned by the engine; null if the engine is operational"
          },
          "ok": {
            "type": "boolean",
            "description": "When true, the MT engine responded successfully"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the machine translate settings engine"
          }
        },
        "description": "Live status of a machine translate engine, as reported by its backend"
      },
      "MachineTranslateStatusV2DtoV2": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "description": "Error message returned by the engine; null if the engine is operational"
          },
          "name": {
            "type": "string",
            "description": "Display name of the engine"
          },
          "ok": {
            "type": "boolean",
            "description": "When true, the MT engine responded successfully"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the machine translate settings engine"
          }
        },
        "description": "Live status of a single MT engine backend."
      },
      "MalformedWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              }
            }
          }
        ]
      },
      "MarketoMetadataDto": {
        "type": "object",
        "properties": {
          "segmentationList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketoSegmentationDto"
            }
          },
          "segmentationMapping": {
            "$ref": "#/components/schemas/MarketoSegmentationMappingDto"
          }
        }
      },
      "MarketoSegmentDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "MarketoSegmentMappingDto": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "segmentId": {
            "type": "integer",
            "format": "int64"
          },
          "source": {
            "type": "boolean"
          }
        }
      },
      "MarketoSegmentationDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string"
          },
          "segmentList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketoSegmentDto"
            }
          }
        }
      },
      "MarketoSegmentationMappingDto": {
        "type": "object",
        "properties": {
          "segmentationId": {
            "type": "integer",
            "format": "int64"
          },
          "segmentsMapping": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MarketoSegmentMappingDto"
            }
          }
        }
      },
      "MdSettingsDtoV1": {
        "type": "object",
        "properties": {
          "customElements": {
            "type": "string"
          },
          "excludeCodeElements": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractCodeBlocks": {
            "type": "boolean",
            "description": "Default: true"
          },
          "flavor": {
            "type": "string",
            "description": "Default: PLAIN",
            "enum": [
              "PLAIN",
              "PHP",
              "GITHUB"
            ]
          },
          "hardLineBreaksSegments": {
            "type": "boolean",
            "description": "Default: true"
          },
          "ignoredBlockPrefixes": {
            "type": "string"
          },
          "notEscapedCharacters": {
            "type": "string"
          },
          "preserveWhiteSpaces": {
            "type": "boolean",
            "description": "Default: false"
          },
          "processJekyllFrontMatter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tagRegexp": {
            "type": "string"
          },
          "translatableUrls": {
            "type": "boolean",
            "description": "Extract an inline markdown link target URL as its own translatable nested tag. Default: false"
          }
        }
      },
      "MemTransMachineTranslateSettingsDtoV1": {
        "type": "object",
        "properties": {
          "args": {
            "type": "object",
            "description": "Engine-specific configuration arguments as key-value pairs",
            "additionalProperties": {
              "type": "object"
            }
          },
          "baseName": {
            "type": "string",
            "example": "DeepL",
            "description": "Base engine type name"
          },
          "category": {
            "type": "string",
            "example": "PHRASE",
            "description": "Engine category; groups engines by capability tier"
          },
          "charCount": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Character count consumed by this engine; -1 when the value is unavailable"
          },
          "default_": {
            "type": "boolean",
            "example": true,
            "description": "Whether this engine is the default selection for the profile"
          },
          "enabled": {
            "type": "boolean",
            "example": true,
            "description": "Whether this engine is currently enabled"
          },
          "glossarySupported": {
            "type": "boolean",
            "example": true,
            "description": "Whether this engine supports glossary-guided translation"
          },
          "id": {
            "type": "string",
            "example": "12345",
            "description": "Internal numeric identifier of the MT engine settings"
          },
          "includeTags": {
            "type": "boolean",
            "example": false,
            "description": "Whether tags are included in translation requests to this engine"
          },
          "langs": {
            "$ref": "#/components/schemas/MachineTranslateSettingsLangsDtoV1"
          },
          "mtQualityEstimation": {
            "type": "boolean",
            "example": false,
            "description": "Whether MT quality estimation is enabled for this engine"
          },
          "name": {
            "type": "string",
            "example": "Phrase Language AI",
            "description": "Display name of the MT engine"
          },
          "type": {
            "type": "string",
            "example": "MEMSOURCE_TRANSLATE",
            "description": "Engine type identifier"
          },
          "uid": {
            "type": "string",
            "example": "8kMckeDcgWWF4Fe4Szqjb1",
            "description": "Unique identifier of the MT engine settings"
          }
        },
        "description": "MT engine settings object embedded in a Language AI profile."
      },
      "MemsourceTranslateEnginesStatusesV2DtoV2": {
        "type": "object",
        "properties": {
          "engineStatuses": {
            "type": "array",
            "description": "List of engine status entries",
            "items": {
              "$ref": "#/components/schemas/MachineTranslateStatusV2DtoV2"
            }
          }
        },
        "description": "Live status of each MT engine attached to a Language AI profile."
      },
      "MemsourceTranslateProfileGlossariesV2DtoV2": {
        "type": "object",
        "properties": {
          "glossaries": {
            "type": "array",
            "description": "Glossaries attached to the Language AI profile",
            "items": {
              "$ref": "#/components/schemas/GlossarySimpleDtoV1"
            }
          }
        },
        "description": "Glossaries attached to a Language AI profile."
      },
      "MemsourceTranslateProfileSimpleDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "locked": {
            "type": "boolean"
          },
          "memsourceTranslate": {
            "$ref": "#/components/schemas/MemTransMachineTranslateSettingsDtoV1"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "MemsourceTranslateProfileV2CreateRequestDtoV2": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "cloneFromUid": {
            "type": "string",
            "description": "Uid of a Language AI profile to clone; omit to create an empty profile"
          },
          "name": {
            "type": "string",
            "example": "My Profile",
            "description": "Name for the new or cloned profile",
            "minLength": 0,
            "maxLength": 255
          }
        },
        "description": "Request to create a new Language AI profile, optionally by cloning an existing one."
      },
      "MemsourceTranslateProfileV2DtoV2": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "example": "2026-08-19T12:52:01Z",
            "description": "ISO 8601 date-time when the profile was created"
          },
          "engines": {
            "type": "array",
            "description": "MT engines attached to this profile. An empty array means no engine rows exist on the profile at all; a returned engine with `enabled: false` means the engine exists but is switched off - these are two different findings.",
            "items": {
              "$ref": "#/components/schemas/MachineTranslateEngineV2DtoV2"
            }
          },
          "glossaries": {
            "type": "array",
            "description": "Glossaries attached to this profile",
            "items": {
              "$ref": "#/components/schemas/GlossarySimpleDtoV1"
            }
          },
          "locked": {
            "type": "boolean",
            "example": false,
            "description": "Whether the profile is locked and cannot be modified, cloned from, or deleted"
          },
          "name": {
            "type": "string",
            "example": "My Profile",
            "description": "Display name of the profile"
          },
          "type": {
            "type": "string",
            "example": "PLAI",
            "description": "Profile kind. PLAI is the standard multi-engine profile; QUOKKA is a single-engine profile with a fixed model shape."
          },
          "uid": {
            "type": "string",
            "example": "W60tuzUhcOPX3ilwoNOdB6",
            "description": "Unique identifier of the profile"
          }
        },
        "description": "A Language AI (MT) profile grouping one or more MT engines under a named configuration. Returned verbatim by LIST, GET, POST and PUT."
      },
      "MemsourceTranslateProfileV2PageDtoV2": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MemsourceTranslateProfileV2DtoV2"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MemsourceTranslateProfileV2UpdateDtoV2": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Renamed",
            "description": "New display name of the profile",
            "minLength": 0,
            "maxLength": 255
          }
        },
        "description": "Request to rename a Language AI profile."
      },
      "MentionDtoV1": {
        "type": "object",
        "required": [
          "mentionType"
        ],
        "properties": {
          "mentionGroupType": {
            "type": "string",
            "enum": [
              "JOB",
              "OWNERS",
              "PROVIDERS",
              "GUESTS",
              "WORKFLOW_STEP"
            ]
          },
          "mentionType": {
            "type": "string",
            "enum": [
              "USER",
              "GROUP"
            ]
          },
          "mentionableGroup": {
            "$ref": "#/components/schemas/MentionableGroupDtoV1"
          },
          "tag": {
            "type": "string"
          },
          "uidReference": {
            "$ref": "#/components/schemas/UidReference"
          },
          "userReferences": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MentionableUserDtoV1"
            }
          }
        }
      },
      "MentionableGroupDtoV1": {
        "type": "object",
        "required": [
          "groupName",
          "groupType"
        ],
        "properties": {
          "groupName": {
            "type": "string",
            "description": "Display name of the group"
          },
          "groupReference": {
            "$ref": "#/components/schemas/UidReference"
          },
          "groupType": {
            "type": "string",
            "description": "Type of the mentionable group",
            "enum": [
              "JOB",
              "OWNERS",
              "PROVIDERS",
              "GUESTS",
              "WORKFLOW_STEP"
            ]
          }
        }
      },
      "MentionableUserDtoV1": {
        "type": "object",
        "required": [
          "unavailable"
        ],
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of the user"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          },
          "id": {
            "type": "string",
            "description": "Unique numeric identifier of the user"
          },
          "jobRoles": {
            "type": "array",
            "description": "Roles the user holds on the job part",
            "items": {
              "$ref": "#/components/schemas/JobRoleDtoV1"
            }
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "role": {
            "type": "string",
            "description": "Role of the user in the organization",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique string identifier of the user"
          },
          "unavailable": {
            "type": "boolean",
            "description": "When true, the user is not currently available for assignment"
          },
          "userName": {
            "type": "string",
            "description": "Username of the user"
          }
        }
      },
      "MetadataPrioritySettingsDtoMetadataField": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "CLIENT",
              "DOMAIN",
              "SUBDOMAIN",
              "FILENAME"
            ]
          }
        }
      },
      "MetadataPrioritySettingsDtoV1": {
        "type": "object",
        "required": [
          "prioritizedFields"
        ],
        "properties": {
          "prioritizedFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataPrioritySettingsDtoMetadataField"
            }
          }
        }
      },
      "MetadataResponseLanguageMetadata1Tm": {
        "type": "object",
        "properties": {
          "segmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Number of segments for this language."
          }
        },
        "description": "Per-language segment count."
      },
      "MetadataResponseLanguageMetadataTb": {
        "type": "object",
        "properties": {
          "termsCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "MetadataResponseTb": {
        "type": "object",
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "metadataByLanguage": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/MetadataResponseLanguageMetadataTb"
            }
          },
          "termsCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "MetadataResponseTm": {
        "type": "object",
        "properties": {
          "deduplicatedSegmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Deduplicated segment count for the translation memory."
          },
          "metadataByLanguage": {
            "type": "object",
            "description": "Per-language segment counts, keyed by language code. Populated only when byLanguage=true.",
            "additionalProperties": {
              "$ref": "#/components/schemas/MetadataResponseLanguageMetadata1Tm"
            }
          },
          "segmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Total number of segments in the translation memory."
          }
        },
        "description": "Translation memory metadata: segment count and size statistics."
      },
      "MetadataTbDtoV1": {
        "type": "object",
        "properties": {
          "metadataByLanguage": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int64"
            }
          },
          "termsCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "MicrosoftCustom": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "category": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "MicrosoftCustomSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "subscriptionKey"
            ],
            "properties": {
              "subscriptionKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MicrosoftHub": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "category": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "rating": {
                "type": "integer",
                "format": "int32",
                "description": "Rating for the trained category. Allowed range: -10 to 10. Default: 3.",
                "minimum": -10,
                "maximum": 10
              }
            }
          }
        ]
      },
      "MicrosoftHubSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "subscriptionKey"
            ],
            "properties": {
              "subscriptionKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MicrosoftTranslate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "MicrosoftTranslateSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "subscriptionKey"
            ],
            "properties": {
              "subscriptionKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MifSettingsDtoV1": {
        "type": "object",
        "properties": {
          "extractBodyPages": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractCustomReferencePages": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractDefaultReferencePages": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractHiddenCondText": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractHiddenPages": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractIndexMarkers": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractLinks": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractMasterPages": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractPgfNumFormat": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractReferencePages": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractUsedPgfNumFormat": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractUsedVariables": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractUsedXRefDef": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractVariables": {
            "type": "boolean",
            "description": "Default: false"
          },
          "extractXRefDef": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "Mirai": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "appId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 64
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "tmIds": {
                "type": "string",
                "description": "Comma separated list of IDs of translation memories created in MiraiTranslate",
                "minLength": 0,
                "maxLength": 255
              },
              "udIds": {
                "type": "string",
                "description": "Comma separated list of IDs of user dictionaries created in MiraiTranslate",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "userLog": {
                "type": "string",
                "minLength": 0,
                "maxLength": 64
              }
            }
          }
        ]
      },
      "MiraiSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey",
              "profile"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MissingNonTranslatableAnnotationWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "beginIndexes": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32"
                }
              },
              "text": {
                "type": "string"
              }
            }
          }
        ]
      },
      "MissingNumbersV3WarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "number": {
                "type": "string"
              },
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              }
            }
          }
        ]
      },
      "MissingNumbersWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "missingNumbers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "MisspelledWord": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "format": "int32",
            "description": "Character offset of the misspelled word in the text"
          },
          "word": {
            "type": "string",
            "description": "The misspelled word"
          }
        }
      },
      "ModelDto": {
        "type": "object",
        "properties": {
          "embedUrl": {
            "type": "string"
          },
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "isDefault": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "QUESTION",
              "DASHBOARD"
            ]
          }
        }
      },
      "ModernMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "ModernMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MonitoredFileDto": {
        "type": "object",
        "required": [
          "encodedFileName",
          "fileName"
        ],
        "properties": {
          "encodedFileName": {
            "type": "string"
          },
          "fileName": {
            "type": "string"
          },
          "uniqueIdentifier": {
            "type": "string"
          }
        }
      },
      "MonitoredFolderStatusDtoV1": {
        "type": "object",
        "required": [
          "encodedRemoteFolder",
          "status",
          "timestampFormatted"
        ],
        "properties": {
          "encodedRemoteFolder": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV1"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "OK",
              "ERROR"
            ]
          },
          "timestampFormatted": {
            "type": "string"
          }
        }
      },
      "MonitoredFolderV3DtoV3": {
        "type": "object",
        "required": [
          "encodedRemoteFolder",
          "folderNames",
          "humanReadableFolderPath",
          "localToken",
          "projectTemplateUid",
          "remoteFolder"
        ],
        "properties": {
          "encodedRemoteFolder": {
            "type": "string",
            "description": "URL-encoded path of the monitored remote folder"
          },
          "fileNameRegex": {
            "type": "string",
            "description": "Regular expression used to filter which file names are processed. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          },
          "folderNames": {
            "type": "array",
            "description": "Folder name segments forming the path of the monitored folder",
            "items": {
              "type": "string"
            }
          },
          "humanReadableFolderPath": {
            "type": "string",
            "description": "Human-readable path of the monitored folder"
          },
          "includeSubfolders": {
            "type": "boolean",
            "description": "When true, files in subfolders of the monitored folder are also processed"
          },
          "localToken": {
            "type": "string",
            "description": "Token of the connector that provides access to the monitored remote storage"
          },
          "moveToProcessedSubfolder": {
            "type": "boolean",
            "description": "When true, processed files are moved to the folder named by processedSubfolder"
          },
          "processedSubfolder": {
            "type": "string",
            "description": "Name of the subfolder processed files are moved into when moveToProcessedSubfolder is true"
          },
          "projectTemplateUid": {
            "type": "string",
            "description": "Identifier of the project template used to create projects from this folder"
          },
          "remoteFolder": {
            "type": "string",
            "description": "Path of the monitored remote folder. For most connectors this is a plain path string, but some connector/folder-type combinations use a structured, JSON-encoded value instead - for example, the Braze connector's CAMPAIGN_DIRECTORY folder type expects a value shaped like {\"pathType\":\"CAMPAIGN_DIRECTORY\"} rather than a plain path. Use the exact value returned by the connector's folder browsing endpoint; do not construct this value manually."
          },
          "selectedMonitoredFiles": {
            "type": "array",
            "description": "Specific files within the folder being monitored instead of monitoring all files",
            "items": {
              "$ref": "#/components/schemas/MonitoredFileDto"
            }
          }
        }
      },
      "Moravia3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "configAlias"
            ],
            "properties": {
              "configAlias": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "tagPairing": {
                "type": "boolean",
                "description": "Tag pairing will be set only when include tags is true. Default: false"
              }
            }
          }
        ]
      },
      "Moravia3Secrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "azureSecret": {
                "type": "string",
                "description": "Use either combination of User ID + Secret or Azure User ID + Azure Secret for API login",
                "minLength": 0,
                "maxLength": 255
              },
              "azureUserId": {
                "type": "string",
                "description": "Use either combination of User ID + Secret or Azure User ID + Azure Secret for API login",
                "minLength": 0,
                "maxLength": 255
              },
              "secret": {
                "type": "string",
                "description": "Use either combination of User ID + Secret or Azure User ID + Azure Secret for API login",
                "minLength": 0,
                "maxLength": 255
              },
              "userId": {
                "type": "string",
                "description": "Use either combination of User ID + Secret or Azure User ID + Azure Secret for API login",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MoraviaMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "category"
            ],
            "properties": {
              "category": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "serviceAccount": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MoraviaMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "secret",
              "userId"
            ],
            "properties": {
              "secret": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "userId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MoraviaTagsMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "category"
            ],
            "properties": {
              "category": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "serviceAccount": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MoraviaTagsMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "secret",
              "userId"
            ],
            "properties": {
              "secret": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "userId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "MoraviaWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "subType": {
                "type": "string"
              }
            }
          }
        ]
      },
      "MultilingualCsvSettingsDtoV1": {
        "type": "object",
        "properties": {
          "allTargetColumns": {
            "type": "object",
            "description": "Format: \"language\":\"column\"; example: {\"en\": \"A\", \"sk\": \"B\"}",
            "additionalProperties": {
              "type": "string"
            }
          },
          "contextKeyColumns": {
            "type": "string",
            "description": "Comma-separated spreadsheet column letters with context keys, same convention as allTargetColumns; example: \"C,D\""
          },
          "contextNoteColumns": {
            "type": "string",
            "description": "Comma-separated spreadsheet column letters with context notes, same convention as allTargetColumns; example: \"C,D\""
          },
          "delimiter": {
            "type": "string",
            "description": "Default: ,",
            "minLength": 0,
            "maxLength": 255
          },
          "delimiterType": {
            "type": "string",
            "description": "Default: COMMA",
            "minLength": 0,
            "maxLength": 255,
            "enum": [
              "TAB",
              "COMMA",
              "SEMICOLON",
              "OTHER"
            ]
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importRows": {
            "type": "string"
          },
          "maxLenColumns": {
            "type": "string"
          },
          "nonEmptySegmentAction": {
            "type": "string",
            "enum": [
              "NONE",
              "CONFIRM",
              "LOCK",
              "CONFIRM_LOCK"
            ]
          },
          "saveConfirmedSegmentsToTm": {
            "type": "boolean"
          },
          "segmentation": {
            "type": "boolean",
            "description": "Default: true"
          },
          "sourceColumns": {
            "type": "string",
            "description": "Spreadsheet column letter of the source-language column, same convention as allTargetColumns; example: \"A\""
          },
          "tagRegexp": {
            "type": "string"
          },
          "targetColumns": {
            "type": "string",
            "description": "Spreadsheet column letter of a single target-language column, same convention as allTargetColumns; example: \"B\". For multiple target languages, use allTargetColumns instead."
          }
        }
      },
      "MultilingualXlsSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeyColumn": {
            "type": "string"
          },
          "contextNoteColumn": {
            "type": "string"
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importRows": {
            "type": "string"
          },
          "maxLenColumn": {
            "type": "string"
          },
          "nonEmptySegmentAction": {
            "type": "string",
            "enum": [
              "NONE",
              "CONFIRM",
              "LOCK",
              "CONFIRM_LOCK"
            ]
          },
          "saveConfirmedSegmentsToTm": {
            "type": "boolean"
          },
          "segmentation": {
            "type": "boolean",
            "description": "Default: true"
          },
          "sourceColumn": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          },
          "targetColumns": {
            "type": "object",
            "description": "Format: \"language\":\"column\"; example: {\"en\": \"A\", \"sk\": \"B\"}",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "MultilingualXmlSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeyXPath": {
            "type": "string"
          },
          "contextNoteXPath": {
            "type": "string"
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "inlineElementsNonTranslatableXPath": {
            "type": "string"
          },
          "maxLenXPath": {
            "type": "string"
          },
          "nonEmptySegmentAction": {
            "type": "string",
            "enum": [
              "NONE",
              "CONFIRM",
              "LOCK",
              "CONFIRM_LOCK"
            ]
          },
          "preserveCharEntities": {
            "type": "string"
          },
          "preserveWhitespace": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "saveConfirmedSegmentsToTm": {
            "type": "boolean"
          },
          "segmentation": {
            "type": "boolean",
            "description": "Default: `true`"
          },
          "sourceElementsXPath": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          },
          "targetElementsXPaths": {
            "type": "object",
            "description": "'Format: \"language\":\"xpath\";\n            example = '{\"en\": \"tuv[@lang='en']/seg\", \"sk\": \"tuv[@lang='sk']/seg\"}",
            "additionalProperties": {
              "type": "string"
            }
          },
          "translatableElementsXPath": {
            "type": "string"
          },
          "xslFile": {
            "type": "string",
            "description": "UID of uploaded XSL file, overrides xslUrl"
          },
          "xslUrl": {
            "type": "string"
          }
        }
      },
      "MultipartFile": {
        "type": "object",
        "properties": {
          "bytes": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "byte"
            }
          },
          "contentType": {
            "type": "string"
          },
          "empty": {
            "type": "boolean"
          },
          "inputStream": {
            "$ref": "#/components/schemas/InputStream"
          },
          "name": {
            "type": "string"
          },
          "originalFilename": {
            "type": "string"
          },
          "resource": {
            "$ref": "#/components/schemas/Resource"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "MultipleSpacesV3WarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              },
              "spaces": {
                "type": "string"
              }
            }
          }
        ]
      },
      "MultipleSpacesWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "NUMBER": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QACheckDtoV2"
          },
          {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "When true, this check is active"
              },
              "ignorable": {
                "type": "boolean",
                "description": "When true, linguists may mark violations of this check as ignored"
              },
              "instant": {
                "type": "boolean",
                "description": "When true, violations are highlighted immediately during translation"
              },
              "lock": {
                "type": "boolean",
                "description": "When true, linguists cannot change this check's enabled or ignorable settings"
              },
              "value": {
                "$ref": "#/components/schemas/Number"
              }
            }
          }
        ]
      },
      "NameDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "NestedTagsWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "misplacedTargetTag": {
                "type": "string",
                "description": "The tag that is nested in the wrong position in the translation"
              }
            }
          }
        ]
      },
      "NetRateScheme": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the scheme was created"
          },
          "defaultScheme": {
            "type": "boolean",
            "description": "Whether this scheme is the organization default applied when none is specified"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Name of the net rate scheme"
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationReferenceV1"
          },
          "rates": {
            "$ref": "#/components/schemas/NetRateSettings"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "workflowStepNetSchemes": {
            "type": "array",
            "description": "Per-workflow-step rates; steps of deleted workflow steps are excluded",
            "items": {
              "$ref": "#/components/schemas/NetRateSchemeWorkflowStepReferenceV1"
            }
          }
        }
      },
      "NetRateSchemeReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "NetRateSchemeReferenceV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the scheme was created"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "isDefault": {
            "type": "boolean",
            "description": "Whether this scheme is the organization default applied when none is specified"
          },
          "name": {
            "type": "string",
            "description": "Name of the net rate scheme"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "NetRateSchemeWorkflowStep": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal numeric identifier of the workflow-step rate entry, encoded as a string"
          },
          "rates": {
            "$ref": "#/components/schemas/NetRateSettings"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          }
        }
      },
      "NetRateSchemeWorkflowStepCreate": {
        "type": "object",
        "required": [
          "workflowStep"
        ],
        "properties": {
          "rates": {
            "$ref": "#/components/schemas/NetRateSettings"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "NetRateSchemeWorkflowStepEdit": {
        "type": "object",
        "properties": {
          "rates": {
            "$ref": "#/components/schemas/NetRateSettings"
          }
        }
      },
      "NetRateSchemeWorkflowStepReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal numeric identifier of the workflow-step rate entry, encoded as a string"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          }
        }
      },
      "NetRateSettings": {
        "type": "object",
        "properties": {
          "if0": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the no-match internal-fuzzy band"
          },
          "if100": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 100% internal-fuzzy (cross-file) match band"
          },
          "if50": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 50% internal-fuzzy match band"
          },
          "if75": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 75% internal-fuzzy match band"
          },
          "if85": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 85% internal-fuzzy match band"
          },
          "if95": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 95% internal-fuzzy match band"
          },
          "mt0": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the no-match machine-translation band"
          },
          "mt100": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 100% machine-translation match band"
          },
          "mt50": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 50% machine-translation match band"
          },
          "mt75": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 75% machine-translation match band"
          },
          "mt85": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 85% machine-translation match band"
          },
          "mt95": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 95% machine-translation match band"
          },
          "nt0": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the no-match non-translatable band"
          },
          "nt100": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 100% non-translatable match band"
          },
          "nt50": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 50% non-translatable match band"
          },
          "nt75": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 75% non-translatable match band"
          },
          "nt85": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 85% non-translatable match band"
          },
          "nt99": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 99% non-translatable match band"
          },
          "repetition": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) applied to repetitions"
          },
          "tm0": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the no-match (new words) translation-memory band"
          },
          "tm100": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 100% translation-memory match band"
          },
          "tm101": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 101% (in-context) translation-memory match band"
          },
          "tm50": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 50% translation-memory match band"
          },
          "tm75": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 75% translation-memory match band"
          },
          "tm85": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 85% translation-memory match band"
          },
          "tm95": {
            "type": "number",
            "format": "double",
            "description": "Net rate (%) for the 95% translation-memory match band"
          }
        },
        "description": "Net rate percentages per match category. Non-translatable (NT) rates are returned as zero when the organization edition does not include the non-translatables-in-analyses feature."
      },
      "NewerAtLowerLevelWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "Nict": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "engine"
            ],
            "properties": {
              "engine": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "plaintextSign": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "NictSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "key_",
              "secret",
              "username"
            ],
            "properties": {
              "key_": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secret": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "NonConformingTermWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              },
              "suggestedTargetTerms": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Term"
                }
              },
              "term": {
                "type": "string"
              }
            }
          }
        ]
      },
      "NotConfirmedWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "NotificationDtoPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotificationDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "responseTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "Timestamp when the response was generated"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "NotificationDtoV1": {
        "type": "object",
        "properties": {
          "commentUid": {
            "type": "string",
            "description": "UID of the associated comment"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the notification was created"
          },
          "dateSeen": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the notification was seen"
          },
          "jobPartUid": {
            "type": "string",
            "description": "UID of the associated job part"
          },
          "messageBody": {
            "type": "string",
            "description": "Body text of the notification message"
          },
          "messageTitle": {
            "type": "string",
            "description": "Title of the notification message"
          },
          "projectUid": {
            "type": "string",
            "description": "UID of the associated project"
          },
          "seen": {
            "type": "boolean",
            "description": "Whether the notification has been seen"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the notification"
          }
        }
      },
      "NotifyJobPartsRequestDtoV1": {
        "type": "object",
        "required": [
          "emailTemplate",
          "jobs"
        ],
        "properties": {
          "bcc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "emailTemplate": {
            "$ref": "#/components/schemas/IdReference"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "NotifyProviderDtoV1": {
        "type": "object",
        "required": [
          "organizationEmailTemplate"
        ],
        "properties": {
          "notificationIntervalInMinutes": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 1440
          },
          "organizationEmailTemplate": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "Npat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "engineId": {
                "type": "string",
                "description": "3 digit number including zeros. Default: 001",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "NpatSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password",
              "userId"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "userId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "NullableUidReference": {
        "type": "object",
        "properties": {
          "removalIntent": {
            "type": "boolean"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "Number": {
        "type": "object"
      },
      "OPTIMIZELY": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "optimizelyClientId",
              "optimizelyClientSecret"
            ],
            "properties": {
              "host": {
                "type": "string",
                "description": "Hostname of the Optimizely instance. Unlike ZENDESK/SALESFORCE, this is a real hostname/URL, not a subdomain prefix."
              },
              "optimizelyClientId": {
                "type": "string"
              },
              "optimizelyClientSecret": {
                "type": "string"
              }
            }
          }
        ]
      },
      "ObjectReference": {
        "type": "object"
      },
      "OfficeHoursDtoV1": {
        "type": "object",
        "required": [
          "from",
          "to"
        ],
        "properties": {
          "from": {
            "type": "integer",
            "format": "int32",
            "description": "Office hours start time, in HHmm format, e.g. 900 for 09:00"
          },
          "to": {
            "type": "integer",
            "format": "int32",
            "description": "Office hours end time, in HHmm format, e.g. 1700 for 17:00. Must be after \"from\""
          }
        },
        "description": "Office hours window used to calculate the due date"
      },
      "OmniscienTechnologies": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "domainCode": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "projectNumber": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "OmniscienTechnologiesSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "accountNumber",
              "password",
              "username"
            ],
            "properties": {
              "accountNumber": {
                "type": "integer",
                "format": "int32"
              },
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "OnedriveConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "OrganizationEmailTemplateDtoV1": {
        "type": "object",
        "properties": {
          "bccAddress": {
            "type": "string",
            "description": "Comma-separated BCC email addresses or macros (e.g. {sender.email})"
          },
          "body": {
            "type": "string",
            "description": "Email body content"
          },
          "ccAddress": {
            "type": "string",
            "description": "Comma-separated CC email addresses or macros (e.g. {sender.email})"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Name of the email template"
          },
          "subject": {
            "type": "string",
            "description": "Email subject line"
          },
          "type": {
            "type": "string",
            "description": "Email template type. The LoginInfo value is deprecated.",
            "enum": [
              "JobAssigned",
              "JobStatusChanged",
              "NextWorkflowStep",
              "JobRejected",
              "LoginInfo",
              "ProjectTransferredToBuyer",
              "SharedProjectAssigned",
              "SharedProjectStatusChanged",
              "AutomatedProjectCreated",
              "AutomatedProjectSourceUpdated",
              "AutomatedProjectStatusChanged",
              "JobWidgetProjectQuotePrepared",
              "JobWidgetProjectQuotePreparationFailure",
              "JobWidgetProjectCreated",
              "JobWidgetProjectCompleted",
              "CmsQuoteReady",
              "CmsWorkCompleted",
              "CmsJobRejected",
              "QUOTE_UPDATED",
              "QUOTE_STATUS_CHANGED",
              "LQA_SHARE_REPORT",
              "PLATFORM_WORK_COMPLETED",
              "PLATFORM_WORK_DECLINED",
              "PLATFORM_WORK_NEW",
              "UserMentionOrComment",
              "ProjectNewReference"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        },
        "description": "An organization email template, as returned by the email template endpoints"
      },
      "OrganizationEmailTemplatePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganizationEmailTemplateDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "OrganizationEmailTemplateTypesDtoV1": {
        "type": "object",
        "properties": {
          "types": {
            "type": "array",
            "description": "List of available email template type names",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Allowed email template type values, for use with the type field/filter"
      },
      "OrganizationReferenceJob": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "OrganizationReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "OtherWeightsDto": {
        "type": "object",
        "properties": {
          "other": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "PHRASE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "phraseAccountId": {
                "type": "string",
                "description": "ID of the caller's Phrase Strings account to sync jobs with. Obtained from the `sites` returned by the Test Connection call for this connector, where `code` is `stringsAccount`."
              },
              "phraseCompleteJob": {
                "type": "boolean",
                "description": "When true, marks the job as complete in Phrase Strings once all its translations are uploaded."
              },
              "phraseCompleteLocale": {
                "type": "boolean",
                "description": "When true, marks the locale as complete in Phrase Strings once all its translations are uploaded."
              },
              "phraseDisableTargetKeysImport": {
                "type": "boolean",
                "description": "When true, keys created for target locales in Phrase Strings are not imported back into the TMS job."
              },
              "phraseEncloseInCdata": {
                "type": "boolean",
                "description": "Enclose HTML content in CDATA when exporting translations to Phrase Strings."
              },
              "phraseImportDueDates": {
                "type": "boolean",
                "description": "When true, imports due dates from jobs in Phrase Strings."
              },
              "phraseImportIncludeCustomMetadata": {
                "type": "boolean",
                "description": "When true, includes Phrase Strings custom metadata when importing jobs."
              },
              "phraseImportIncludeDescription": {
                "type": "boolean",
                "description": "When true, includes the Phrase Strings key description when importing jobs."
              },
              "phraseImportIncludeScreenshots": {
                "type": "boolean",
                "description": "When true, includes Phrase Strings screenshots when importing jobs."
              },
              "phraseImportIncludeTags": {
                "type": "boolean",
                "description": "When true, includes Phrase Strings key tags when importing jobs."
              },
              "phraseLanguageMapping": {
                "type": "object",
                "description": "Maps TMS locale codes to the corresponding Phrase Strings locale codes, for locales where the codes differ between the two systems.",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "phraseMembershipId": {
                "type": "string",
                "description": "ID of the caller's membership in the linked Phrase Strings account. Obtained from the `sites` returned by the Test Connection call for this connector, where `code` is `stringsMembershipId`."
              },
              "phraseOnlyOneSyncJobMode": {
                "type": "boolean",
                "description": "When true, only one sync job is kept per Phrase Strings source, replacing the previous job instead of creating a new one on each sync."
              },
              "phraseOverrideProjectDefaultLocale": {
                "type": "boolean",
                "description": "When true, overrides the project's default locale with the locale configured in Phrase Strings when importing jobs."
              },
              "phraseTmsOrganizationId": {
                "type": "integer",
                "format": "int64",
                "description": "TMS organization to sync jobs into. Always set by the server to the requesting user's own organization ID; any value sent in the request is overwritten."
              },
              "phraseTmsOrganizationName": {
                "type": "string",
                "description": "Display name of the TMS organization shown to Phrase Strings users. Always set by the server to the requesting user's own organization name; any value sent in the request is overwritten."
              },
              "phraseUpdateTranslationKeys": {
                "type": "boolean",
                "description": "Indicates whether new keys should be created and existing keys should be updated."
              },
              "phraseUpdateTranslations": {
                "type": "boolean",
                "description": "Indicates whether existing translations should be updated with the file content."
              },
              "phraseUpdateTranslationsOnSourceMatch": {
                "type": "boolean",
                "description": "Update target translations only if the source translations of the uploaded multilingual file match the stored translations."
              },
              "phraseVerifyMentionedTranslations": {
                "type": "boolean",
                "description": "When true, marks uploaded translations as verified."
              }
            },
            "description": "Connects TMS to Phrase Strings (Job Sync), automatically routing translation jobs between the two products."
          }
        ]
      },
      "PORTAL_MEMBER": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "PORTAL_MEMBER_EDIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserEditDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "PORTAL_MEMBER_RESPONSE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserDetailsDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "projectClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "projectViewOther": {
                "type": "boolean"
              },
              "termBaseApproveOther": {
                "type": "boolean"
              },
              "termBaseClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "termBaseEditOther": {
                "type": "boolean"
              },
              "termBaseExportOther": {
                "type": "boolean"
              },
              "termBaseImportOther": {
                "type": "boolean"
              },
              "termBaseViewOther": {
                "type": "boolean"
              },
              "transMemoryClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "transMemoryEditOther": {
                "type": "boolean"
              },
              "transMemoryExportOther": {
                "type": "boolean"
              },
              "transMemoryImportOther": {
                "type": "boolean"
              },
              "transMemoryViewOther": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "PROJECT_MANAGER": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "buyers": {
                "type": "array",
                "description": "Access is restricted to selected buyers only. Empty list means no restriction. Referenced buyer UIDs are always validated for existence and access",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "clientDomainSubDomainCreate": {
                "type": "boolean",
                "description": "Enable clients, domains, subdomains creation. Default: true"
              },
              "clientDomainSubDomainDeleteOther": {
                "type": "boolean",
                "description": "Delete clients, domains, subdomains created by other users. Default: true"
              },
              "clientDomainSubDomainEditOther": {
                "type": "boolean",
                "description": "Modify clients, domains, subdomains created by other users. Default: true"
              },
              "clientDomainSubDomainViewOther": {
                "type": "boolean",
                "description": "View clients, domains, subdomains created by other users. Default: true"
              },
              "clients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "dashboardSetting": {
                "type": "string",
                "description": "Home page dashboards. Default: OWN_DATA",
                "enum": [
                  "ALL_DATA",
                  "OWN_DATA",
                  "NO_DASHBOARD"
                ]
              },
              "domains": {
                "type": "array",
                "description": "Domains the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned domains",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectBusinessUnits": {
                "type": "array",
                "description": "Access projects of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectClients": {
                "type": "array",
                "description": "Access projects of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectCreate": {
                "type": "boolean",
                "description": "Enable project creation. Default: true"
              },
              "projectDeleteOther": {
                "type": "boolean",
                "description": "Delete projects created by other users. Default: true"
              },
              "projectEditOther": {
                "type": "boolean",
                "description": "Modify projects created by other users. Default: true"
              },
              "projectTemplateBusinessUnits": {
                "type": "array",
                "description": "Access project templates of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectTemplateClients": {
                "type": "array",
                "description": "Access project templates of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectTemplateCreate": {
                "type": "boolean",
                "description": "Enable project templates creation. Default: true"
              },
              "projectTemplateDeleteOther": {
                "type": "boolean",
                "description": "Delete project templates created by other users. Default: true"
              },
              "projectTemplateEditOther": {
                "type": "boolean",
                "description": "Modify project templates created by other users. Default: true"
              },
              "projectTemplateViewOther": {
                "type": "boolean",
                "description": "View project templates created by other users. Default: true"
              },
              "projectViewOther": {
                "type": "boolean",
                "description": "View projects created by other users. Default: true"
              },
              "setupServer": {
                "type": "boolean",
                "description": "Modify setup's server settings. Default: true"
              },
              "sourceLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subDomains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "targetLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "termBaseApproveOther": {
                "type": "boolean",
                "description": "Approve terms in TBs created by other users. Default: true"
              },
              "termBaseBusinessUnits": {
                "type": "array",
                "description": "Access TBs of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "termBaseClients": {
                "type": "array",
                "description": "Access TBs of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "termBaseCreate": {
                "type": "boolean",
                "description": "Enable TBs creation. Default: true"
              },
              "termBaseDeleteOther": {
                "type": "boolean",
                "description": "Delete TBs created by other users. Default: true"
              },
              "termBaseEditOther": {
                "type": "boolean",
                "description": "Modify TBs created by other users. Default: true"
              },
              "termBaseExportOther": {
                "type": "boolean",
                "description": "Export TBs created by other users. Default: true"
              },
              "termBaseImportOther": {
                "type": "boolean",
                "description": "Import into TBs created by other users. Default: true"
              },
              "termBaseViewOther": {
                "type": "boolean",
                "description": "View TBs created by other users. Default: true"
              },
              "transMemoryBusinessUnits": {
                "type": "array",
                "description": "Access TMs of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "transMemoryClients": {
                "type": "array",
                "description": "Access TMs of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "transMemoryCreate": {
                "type": "boolean",
                "description": "Enable TMs creation. Default: true"
              },
              "transMemoryDeleteOther": {
                "type": "boolean",
                "description": "Delete TMs created by other users. Default: true"
              },
              "transMemoryEditOther": {
                "type": "boolean",
                "description": "Modify TMs created by other users. Default: true"
              },
              "transMemoryExportOther": {
                "type": "boolean",
                "description": "Export TMs created by other users. Default: true"
              },
              "transMemoryImportOther": {
                "type": "boolean",
                "description": "Import into TMs created by other users. Default: true"
              },
              "transMemoryViewOther": {
                "type": "boolean",
                "description": "View TMs created by other users. Default: true"
              },
              "userCreate": {
                "type": "boolean",
                "description": "Enable users creation. Default: true"
              },
              "userDeleteOther": {
                "type": "boolean",
                "description": "Delete users created by other users. Default: true"
              },
              "userEditOther": {
                "type": "boolean",
                "description": "Modify users created by other users. Default: true"
              },
              "userViewOther": {
                "type": "boolean",
                "description": "View users created by other users. Default: true"
              },
              "vendorCreate": {
                "type": "boolean",
                "description": "Enable Vendors creation. Default: true"
              },
              "vendorDeleteOther": {
                "type": "boolean",
                "description": "Delete Vendors created by other users. Default: true"
              },
              "vendorEditOther": {
                "type": "boolean",
                "description": "Modify Vendors created by other users. Default: true"
              },
              "vendorViewOther": {
                "type": "boolean",
                "description": "View Vendors created by other users. Default: true"
              },
              "workflowSteps": {
                "type": "array",
                "description": "Workflow steps the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned workflow steps",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              }
            }
          }
        ]
      },
      "PROJECT_MANAGER_EDIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserEditDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "buyers": {
                "type": "array",
                "description": "Access is restricted to selected buyers only. Empty list means no restriction. Referenced buyer UIDs are always validated for existence and access",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "clientDomainSubDomainCreate": {
                "type": "boolean",
                "description": "Enable clients, domains, subdomains creation. Default: true"
              },
              "clientDomainSubDomainDeleteOther": {
                "type": "boolean",
                "description": "Delete clients, domains, subdomains created by other users. Default: true"
              },
              "clientDomainSubDomainEditOther": {
                "type": "boolean",
                "description": "Modify clients, domains, subdomains created by other users. Default: true"
              },
              "clientDomainSubDomainViewOther": {
                "type": "boolean",
                "description": "View clients, domains, subdomains created by other users. Default: true"
              },
              "clients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "dashboardSetting": {
                "type": "string",
                "description": "Home page dashboards. Default: OWN_DATA",
                "enum": [
                  "ALL_DATA",
                  "OWN_DATA",
                  "NO_DASHBOARD"
                ]
              },
              "domains": {
                "type": "array",
                "description": "Domains the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned domains",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectBusinessUnits": {
                "type": "array",
                "description": "Access projects of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectClients": {
                "type": "array",
                "description": "Access projects of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectCreate": {
                "type": "boolean",
                "description": "Enable project creation. Default: true"
              },
              "projectDeleteOther": {
                "type": "boolean",
                "description": "Delete projects created by other users. Default: true"
              },
              "projectEditOther": {
                "type": "boolean",
                "description": "Modify projects created by other users. Default: true"
              },
              "projectTemplateBusinessUnits": {
                "type": "array",
                "description": "Access project templates of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectTemplateClients": {
                "type": "array",
                "description": "Access project templates of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "projectTemplateCreate": {
                "type": "boolean",
                "description": "Enable project templates creation. Default: true"
              },
              "projectTemplateDeleteOther": {
                "type": "boolean",
                "description": "Delete project templates created by other users. Default: true"
              },
              "projectTemplateEditOther": {
                "type": "boolean",
                "description": "Modify project templates created by other users. Default: true"
              },
              "projectTemplateViewOther": {
                "type": "boolean",
                "description": "View project templates created by other users. Default: true"
              },
              "projectViewOther": {
                "type": "boolean",
                "description": "View projects created by other users. Default: true"
              },
              "setupServer": {
                "type": "boolean",
                "description": "Modify setup's server settings. Default: true"
              },
              "sourceLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subDomains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "targetLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "termBaseApproveOther": {
                "type": "boolean",
                "description": "Approve terms in TBs created by other users. Default: true"
              },
              "termBaseBusinessUnits": {
                "type": "array",
                "description": "Access TBs of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "termBaseClients": {
                "type": "array",
                "description": "Access TBs of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "termBaseCreate": {
                "type": "boolean",
                "description": "Enable TBs creation. Default: true"
              },
              "termBaseDeleteOther": {
                "type": "boolean",
                "description": "Delete TBs created by other users. Default: true"
              },
              "termBaseEditOther": {
                "type": "boolean",
                "description": "Modify TBs created by other users. Default: true"
              },
              "termBaseExportOther": {
                "type": "boolean",
                "description": "Export TBs created by other users. Default: true"
              },
              "termBaseImportOther": {
                "type": "boolean",
                "description": "Import into TBs created by other users. Default: true"
              },
              "termBaseViewOther": {
                "type": "boolean",
                "description": "View TBs created by other users. Default: true"
              },
              "transMemoryBusinessUnits": {
                "type": "array",
                "description": "Access TMs of selected business units only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "transMemoryClients": {
                "type": "array",
                "description": "Access TMs of a selected clients only",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              },
              "transMemoryCreate": {
                "type": "boolean",
                "description": "Enable TMs creation. Default: true"
              },
              "transMemoryDeleteOther": {
                "type": "boolean",
                "description": "Delete TMs created by other users. Default: true"
              },
              "transMemoryEditOther": {
                "type": "boolean",
                "description": "Modify TMs created by other users. Default: true"
              },
              "transMemoryExportOther": {
                "type": "boolean",
                "description": "Export TMs created by other users. Default: true"
              },
              "transMemoryImportOther": {
                "type": "boolean",
                "description": "Import into TMs created by other users. Default: true"
              },
              "transMemoryViewOther": {
                "type": "boolean",
                "description": "View TMs created by other users. Default: true"
              },
              "userCreate": {
                "type": "boolean",
                "description": "Enable users creation. Default: true"
              },
              "userDeleteOther": {
                "type": "boolean",
                "description": "Delete users created by other users. Default: true"
              },
              "userEditOther": {
                "type": "boolean",
                "description": "Modify users created by other users. Default: true"
              },
              "userViewOther": {
                "type": "boolean",
                "description": "View users created by other users. Default: true"
              },
              "vendorCreate": {
                "type": "boolean",
                "description": "Enable Vendors creation. Default: true"
              },
              "vendorDeleteOther": {
                "type": "boolean",
                "description": "Delete Vendors created by other users. Default: true"
              },
              "vendorEditOther": {
                "type": "boolean",
                "description": "Modify Vendors created by other users. Default: true"
              },
              "vendorViewOther": {
                "type": "boolean",
                "description": "View Vendors created by other users. Default: true"
              },
              "workflowSteps": {
                "type": "array",
                "description": "Workflow steps the user is assigned to. Sending an empty list (or omitting the field) clears any previously assigned workflow steps",
                "items": {
                  "$ref": "#/components/schemas/UidReference"
                }
              }
            }
          }
        ]
      },
      "PROJECT_MANAGER_RESPONSE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserDetailsDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "buyers": {
                "type": "array",
                "description": "Access is restricted to selected buyers only. Empty list means no restriction.",
                "items": {
                  "$ref": "#/components/schemas/BuyerReferenceV1"
                }
              },
              "clientDomainSubDomainCreate": {
                "type": "boolean"
              },
              "clientDomainSubDomainDeleteOther": {
                "type": "boolean"
              },
              "clientDomainSubDomainEditOther": {
                "type": "boolean"
              },
              "clientDomainSubDomainViewOther": {
                "type": "boolean"
              },
              "clients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "dashboardSetting": {
                "type": "string"
              },
              "domains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DomainReferenceV3"
                }
              },
              "projectBusinessUnits": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BusinessUnitReferenceV3"
                }
              },
              "projectClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "projectCreate": {
                "type": "boolean"
              },
              "projectDeleteOther": {
                "type": "boolean"
              },
              "projectEditOther": {
                "type": "boolean"
              },
              "projectTemplateBusinessUnits": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BusinessUnitReferenceV3"
                }
              },
              "projectTemplateClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "projectTemplateCreate": {
                "type": "boolean"
              },
              "projectTemplateDeleteOther": {
                "type": "boolean"
              },
              "projectTemplateEditOther": {
                "type": "boolean"
              },
              "projectTemplateViewOther": {
                "type": "boolean"
              },
              "projectViewOther": {
                "type": "boolean"
              },
              "setupServer": {
                "type": "boolean"
              },
              "sourceLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "subDomains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubDomainReferenceV3"
                }
              },
              "targetLocales": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "termBaseApproveOther": {
                "type": "boolean"
              },
              "termBaseBusinessUnits": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BusinessUnitReferenceV3"
                }
              },
              "termBaseClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "termBaseCreate": {
                "type": "boolean"
              },
              "termBaseDeleteOther": {
                "type": "boolean"
              },
              "termBaseEditOther": {
                "type": "boolean"
              },
              "termBaseExportOther": {
                "type": "boolean"
              },
              "termBaseImportOther": {
                "type": "boolean"
              },
              "termBaseViewOther": {
                "type": "boolean"
              },
              "transMemoryBusinessUnits": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BusinessUnitReferenceV3"
                }
              },
              "transMemoryClients": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ClientReferenceV3"
                }
              },
              "transMemoryCreate": {
                "type": "boolean"
              },
              "transMemoryDeleteOther": {
                "type": "boolean"
              },
              "transMemoryEditOther": {
                "type": "boolean"
              },
              "transMemoryExportOther": {
                "type": "boolean"
              },
              "transMemoryImportOther": {
                "type": "boolean"
              },
              "transMemoryViewOther": {
                "type": "boolean"
              },
              "userCreate": {
                "type": "boolean"
              },
              "userDeleteOther": {
                "type": "boolean"
              },
              "userEditOther": {
                "type": "boolean"
              },
              "userViewOther": {
                "type": "boolean"
              },
              "vendorCreate": {
                "type": "boolean"
              },
              "vendorDeleteOther": {
                "type": "boolean"
              },
              "vendorEditOther": {
                "type": "boolean"
              },
              "vendorViewOther": {
                "type": "boolean"
              },
              "workflowSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WorkflowStepReferenceV3"
                }
              }
            }
          }
        ]
      },
      "PageDtoAnalyseReferenceV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnalyseReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageDtoAsyncRequestDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AsyncRequestDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageDtoCustomFieldInstanceDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldInstanceDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageDtoDomainDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DomainDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageDtoJobPartReferenceV2": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobPartReferenceV2"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageDtoLqaReportRecipientDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LqaReportRecipientDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageDtoWebhookCallDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebhookCallDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PageRequest": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          }
        }
      },
      "Pangea": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "engineId"
            ],
            "properties": {
              "engineId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "host": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "port": {
                "type": "integer",
                "format": "int32"
              }
            }
          }
        ]
      },
      "PangeaSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password",
              "username"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "PartnerConnector": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "subType",
              "url"
            ],
            "properties": {
              "authUrl": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "metadata": {
                "type": "string"
              },
              "subType": {
                "type": "string",
                "minLength": 0,
                "maxLength": 32
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "PartnerConnectorDefinitionDtoAuthentication": {
        "type": "object",
        "properties": {
          "header": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoHeader"
          },
          "oauth": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoOAuth"
          }
        }
      },
      "PartnerConnectorDefinitionDtoBaseUrl": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "helpText": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "PartnerConnectorDefinitionDtoConnection": {
        "type": "object",
        "required": [
          "authentication",
          "baseUrl"
        ],
        "properties": {
          "assistiveText": {
            "type": "string"
          },
          "authentication": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoAuthentication"
          },
          "baseUrl": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoBaseUrl"
          }
        }
      },
      "PartnerConnectorDefinitionDtoCustomField": {
        "type": "object",
        "required": [
          "key",
          "type"
        ],
        "properties": {
          "allowedValues": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "defaultValue": {
            "type": "string"
          },
          "helpText": {
            "type": "string"
          },
          "hidden": {
            "type": "boolean"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "placeholderText": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          },
          "secret": {
            "type": "boolean"
          },
          "type": {
            "type": "string",
            "enum": [
              "TEXT",
              "TEXTAREA",
              "DROPDOWN"
            ]
          }
        }
      },
      "PartnerConnectorDefinitionDtoCustomization": {
        "type": "object",
        "properties": {
          "assistiveText": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoCustomField"
            }
          }
        }
      },
      "PartnerConnectorDefinitionDtoFeatures": {
        "type": "object",
        "properties": {
          "async": {
            "type": "boolean"
          },
          "dataRegionPolicy": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "glossaries": {
            "type": "boolean"
          },
          "sync": {
            "type": "boolean"
          }
        }
      },
      "PartnerConnectorDefinitionDtoFieldConfig": {
        "type": "object",
        "properties": {
          "defaultValue": {
            "type": "string"
          },
          "helpText": {
            "type": "string"
          },
          "hidden": {
            "type": "boolean"
          },
          "label": {
            "type": "string"
          },
          "placeholderText": {
            "type": "string"
          },
          "required": {
            "type": "boolean"
          }
        }
      },
      "PartnerConnectorDefinitionDtoHeader": {
        "type": "object",
        "required": [
          "authHeaderName",
          "authHeaderValue"
        ],
        "properties": {
          "authHeaderName": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig"
          },
          "authHeaderValue": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig"
          }
        }
      },
      "PartnerConnectorDefinitionDtoOAuth": {
        "type": "object",
        "required": [
          "authUrl",
          "clientId",
          "clientSecret"
        ],
        "properties": {
          "authUrl": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig"
          },
          "clientId": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig"
          },
          "clientSecret": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoFieldConfig"
          }
        }
      },
      "PartnerConnectorDefinitionDtoV1": {
        "type": "object",
        "required": [
          "connection",
          "engineName",
          "providerName"
        ],
        "properties": {
          "assistiveText": {
            "type": "string"
          },
          "connection": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoConnection"
            }
          },
          "customization": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoCustomization"
          },
          "docsUrl": {
            "type": "string"
          },
          "engineName": {
            "type": "string"
          },
          "features": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoFeatures"
          },
          "learnMoreUrl": {
            "type": "string"
          },
          "localization": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "logoUrl": {
            "type": "string"
          },
          "providerName": {
            "type": "string"
          }
        }
      },
      "PartnerConnectorSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "authHeader": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "authToken": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secretId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secretKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "PassFailThresholdDto": {
        "type": "object",
        "required": [
          "minScorePercentage"
        ],
        "properties": {
          "minScorePercentage": {
            "type": "number",
            "format": "double",
            "example": 99,
            "description": "Minimum allowed LQA score in percentage in line with MQM scoring (1 - penalties/word-count)"
          }
        }
      },
      "PatchProjectDtoV1": {
        "type": "object",
        "properties": {
          "archived": {
            "type": "boolean",
            "description": "Set to true to archive the project. Setting to false has no effect; to unarchive a project, use PATCH /api2/v1/projects/{projectUid}/restore. Archiving is not the same as deleting a project, which moves it to the recycle bin."
          },
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Project due date. Accepts an ISO 8601 date-time with a time zone designator (`Z` or a numeric offset such as `+00:00`/`-05:00`, e.g. `2026-08-29T15:50:00+00:00`); the same format without a designator (e.g. `2026-08-29T15:50:00`) returns 400 Bad Request. A space-separated `yyyy-MM-dd HH:mm` value (e.g. `2026-08-29 15:50`) has no offset and is interpreted as UTC. A legacy `MMM d, yyyy h:mm:ss a` value (e.g. `Aug 29, 2026 3:50:00 PM`) is also accepted and parsed in the server's default time zone, not UTC."
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "machineTranslateSettingsPerLangs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectMTSettingsPerLangDtoV1"
            }
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          },
          "projectWorkflowSettings": {
            "$ref": "#/components/schemas/ProjectWorkflowSettingsDtoV1"
          },
          "purchaseOrder": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ASSIGNED",
              "COMPLETED",
              "ACCEPTED_BY_VENDOR",
              "DECLINED_BY_VENDOR",
              "COMPLETED_BY_VENDOR",
              "CANCELLED"
            ]
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "PdfSettingsDtoV1": {
        "type": "object",
        "properties": {
          "filter": {
            "type": "string",
            "description": "Default: TRANS_PDF",
            "enum": [
              "TRANS_PDF",
              "DEFAULT",
              "CONVERT_API"
            ]
          },
          "ocrMode": {
            "type": "string"
          },
          "wysiwyg": {
            "type": "boolean"
          }
        }
      },
      "PenaltyPointsDto": {
        "type": "object",
        "properties": {
          "critical": {
            "$ref": "#/components/schemas/SeverityDto"
          },
          "major": {
            "$ref": "#/components/schemas/SeverityDto"
          },
          "minor": {
            "$ref": "#/components/schemas/SeverityDto"
          },
          "neutral": {
            "$ref": "#/components/schemas/SeverityDto"
          }
        },
        "description": "Penalty points for each severity level. By default neutral is 0, minor is 1, major is 5, critical is 10."
      },
      "PhpSettingsDtoV1": {
        "type": "object",
        "properties": {
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "PlainConversationDtoV1": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "description": "List of comments in the conversation",
            "items": {
              "$ref": "#/components/schemas/CommentDtoV1"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/MentionableUserDtoV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was created"
          },
          "dateEdited": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was last edited by a user"
          },
          "dateModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date the conversation was last modified"
          },
          "deleted": {
            "type": "boolean",
            "description": "Whether the conversation has been deleted"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the conversation"
          },
          "references": {
            "$ref": "#/components/schemas/PlainReferences"
          },
          "status": {
            "$ref": "#/components/schemas/StatusDtoV1"
          },
          "type": {
            "type": "string",
            "description": "SEGMENT_TARGET"
          }
        }
      },
      "PlainConversationsListDtoV1": {
        "type": "object",
        "properties": {
          "conversations": {
            "type": "array",
            "description": "List of plain conversations",
            "items": {
              "$ref": "#/components/schemas/PlainConversationDtoV1"
            }
          }
        }
      },
      "PlainReferences": {
        "type": "object",
        "required": [
          "segmentId",
          "transGroupId"
        ],
        "properties": {
          "commentedText": {
            "type": "string",
            "description": "Portion of the target text that the conversation refers to"
          },
          "conversationTitle": {
            "type": "string",
            "description": "Title of the conversation, typically the source segment text"
          },
          "conversationTitleOffset": {
            "type": "integer",
            "format": "int32",
            "description": "Character offset of the conversation title within the segment",
            "minimum": 0
          },
          "correlation": {
            "$ref": "#/components/schemas/ReferenceCorrelation"
          },
          "jobPartUid": {
            "type": "string",
            "readOnly": true
          },
          "segmentId": {
            "type": "string"
          },
          "taskId": {
            "type": "string",
            "readOnly": true
          },
          "transGroupId": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      },
      "PoSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeySuffixType": {
            "type": "string",
            "enum": [
              "MSGCTXT",
              "MSGID",
              "MSGCTXT_AND_MSGID",
              "MSGCTXT_OR_MSGID"
            ]
          },
          "exportConfirmedLocked": {
            "type": "string",
            "enum": [
              "FUZZY",
              "NONFUZZY"
            ]
          },
          "exportConfirmedNotLocked": {
            "type": "string",
            "enum": [
              "FUZZY",
              "NONFUZZY"
            ]
          },
          "exportMultiline": {
            "type": "boolean",
            "description": "Default: true"
          },
          "exportNotConfirmedLocked": {
            "type": "string",
            "enum": [
              "FUZZY",
              "NONFUZZY"
            ]
          },
          "exportNotConfirmedNotLocked": {
            "type": "string",
            "enum": [
              "FUZZY",
              "NONFUZZY"
            ]
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "importSetSegmentConfirmedWhen": {
            "type": "string",
            "enum": [
              "FUZZY",
              "NONFUZZY"
            ]
          },
          "importSetSegmentLockedWhen": {
            "type": "string",
            "enum": [
              "FUZZY",
              "NONFUZZY"
            ]
          },
          "markupSubFilterNonTranslatable": {
            "type": "string"
          },
          "markupSubFilterTranslatable": {
            "type": "string"
          },
          "saveConfirmedSegments": {
            "type": "boolean"
          },
          "segment": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tagRegexp": {
            "type": "string"
          },
          "updateHeader": {
            "type": "boolean",
            "description": "Default: `false`"
          }
        }
      },
      "Position": {
        "type": "object",
        "properties": {
          "beginIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Index of the first character of the flagged content"
          },
          "endIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Index of the character following the flagged content"
          }
        },
        "description": "Character range of the flagged content within the segment text"
      },
      "PostAnalyse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractAnalyseSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "machineTranslatePostEditing": {
                "type": "boolean",
                "description": "When true, measures the post-editing distance against machine translation matches. Default: false"
              },
              "nonTranslatablePostEditing": {
                "type": "boolean",
                "description": "When true, measures the post-editing distance for non-translatable segments. Default: false"
              },
              "transMemoryPostEditing": {
                "type": "boolean",
                "description": "When true, measures the post-editing distance against translation memory matches. Default: false"
              }
            }
          }
        ]
      },
      "PptSettingsDtoV1": {
        "type": "object",
        "properties": {
          "altText": {
            "type": "boolean",
            "description": "Default: false. When true, extracts image alt text as translatable content."
          },
          "hiddenSlides": {
            "type": "boolean",
            "description": "Default: false. When true, extracts text from hidden slides."
          },
          "hyperlinkTarget": {
            "type": "boolean",
            "description": "Default: false. When true, imports the hyperlink target as translatable content."
          },
          "masterSlides": {
            "type": "boolean",
            "description": "Default: false. When true, extracts text from master slides."
          },
          "notes": {
            "type": "boolean",
            "description": "Default: false. When true, extracts speaker notes as translatable content."
          },
          "ocrImageText": {
            "type": "boolean",
            "description": "Default: false. When true, runs OCR on images to extract translatable text."
          },
          "other": {
            "type": "boolean",
            "description": "Default: false. When true, extracts other/miscellaneous text elements from the presentation."
          }
        },
        "description": "Microsoft PowerPoint (PPTX) file import settings."
      },
      "PreAnalyse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractAnalyseSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeFuzzyRepetitions": {
                "type": "boolean",
                "description": "When true, internal fuzzy matches (segments that fuzzily repeat within the analyzed content) are included in the counts. Default: false"
              },
              "includeMachineTranslationMatches": {
                "type": "boolean",
                "description": "When true, machine translation matches are included in the counts. Default: false"
              },
              "includeNonTranslatables": {
                "type": "boolean",
                "description": "When true, non-translatable segments are included in the counts. Default: false"
              },
              "separateFuzzyRepetitions": {
                "type": "boolean",
                "description": "When true, internal fuzzy repetitions are counted as a separate category instead of being merged into the Repetitions count. Default: false"
              },
              "skipMtScoreThreshold": {
                "type": "number",
                "format": "double",
                "description": "Used only for type=PreAnalyse. Threshold above which the MT suggestions are not used. Default: value from PreTranslate settings"
              }
            }
          }
        ]
      },
      "PreTranslateJobSettingsV3DtoJobMachineTranslationSettingsV3DtoV3": {
        "type": "object",
        "properties": {
          "confirmMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for:\n                machine translation suggestions above `confirmMatchesThreshold`. Default: false"
          },
          "confirmMatchesThreshold": {
            "type": "number",
            "format": "double",
            "description": "Machine translation suggestions percent. Default: `1.0`",
            "minimum": 0,
            "maximum": 1,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "confirmPassedQualityEvaluation": {
            "type": "boolean",
            "description": "Set segment status to confirmed for segments that pass quality evaluation. Default: false"
          },
          "lock100PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 100% machine translation suggestions. Default: false, use lockMtThreshold to override the threshold"
          },
          "lockMtThreshold": {
            "type": "number",
            "format": "double",
            "description": "Segment locking based on machine translation suggestions with QPS above threshold. Default: 100%, used in combination with lock100PercentMatches",
            "minimum": 0,
            "maximum": 100,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "lockPassedQualityEvaluation": {
            "type": "boolean",
            "description": "Lock segments that pass quality evaluation. Two flows are supported: quality-profile-based (qualityProfileUid is set) and Content-Group-based (qualityProfileUid is null — requires a Content Group linked to the project, skipped if none is linked). Default: false"
          },
          "machineTranslationBehavior": {
            "type": "string",
            "description": "Machine translation behavior. Default: APPLY_MT_ABOVE_THRESHOLD",
            "enum": [
              "APPLY_MT_ABOVE_THRESHOLD",
              "COMPARE_AND_BEST_MATCH"
            ]
          },
          "mtSuggestOnlyTmBelow": {
            "type": "boolean",
            "description": "Suggest MT only for segments with a TM match below. Default: true"
          },
          "mtSuggestOnlyTmBelowThreshold": {
            "type": "number",
            "format": "double",
            "description": "Suggest MT only for segments with a TM match below threshold. Default: 1.0",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "qualityProfileUid": {
            "type": "string",
            "description": "UID of the quality profile to use for evaluation (quality-profile-based flow). When set, quality evaluation runs against this profile. When null, the Content-Group-based flow is used instead. Deprecated, will be removed ahead of the quality-profile sunset."
          },
          "triggerQualityEvaluation": {
            "type": "boolean",
            "description": "Run a quality evaluation step after pre-translate. When omitted, defaults to the value of lockPassedQualityEvaluation for backward compatibility. Default: false"
          },
          "useAltTransOnly": {
            "type": "boolean",
            "description": "Do not put machine translations to target and use alt-trans fields (alt-trans in mxlf).\nDefault: false"
          },
          "useMachineTranslation": {
            "type": "boolean",
            "description": "Pre-translate from machine translation. Default: true.\nUses whichever MT engine is currently assigned to the project — this flag has\nno engine-selection field of its own. See\n[Get project machine translate settings](../project/get-project-machine-translate-settings) /\n[Assign machine translate engine to project](../project/assign-machine-translate-engine-to-project)\nto check or change the effective engine."
          }
        },
        "description": "Machine translation related settings"
      },
      "PreTranslateJobSettingsV3DtoJobNonTranslatableSettingsV3DtoV3": {
        "type": "object",
        "properties": {
          "confirm100PercentMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: 100% non-translatables. Default: false"
          },
          "lock100PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 100% non-translatables. Default: false"
          },
          "preTranslateNonTranslatables": {
            "type": "boolean",
            "description": "Pre-translate non-translatables. Default: true"
          }
        },
        "description": "Non-translatables related settings"
      },
      "PreTranslateJobSettingsV3DtoJobTranslationMemorySettingsV3DtoV3": {
        "type": "object",
        "properties": {
          "confirm100PercentMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: 100% translation memory matches. Default: false"
          },
          "confirm101PercentMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: 101% translation memory matches. Default: false"
          },
          "lock100PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 100% translation memory matches. Default: false"
          },
          "lock101PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 101% translation memory matches. Default: false"
          },
          "translationMemoryThreshold": {
            "type": "number",
            "format": "double",
            "description": "Pre-translation threshold percent. Default: 0.7",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "useTranslationMemory": {
            "type": "boolean",
            "description": "Pre-translate from translation memory. Default: true"
          }
        },
        "description": "Translation memory related settings"
      },
      "PreTranslateJobSettingsV3DtoV3": {
        "type": "object",
        "properties": {
          "autoPropagateRepetitions": {
            "type": "boolean",
            "description": "Propagate repetitions. Default: false"
          },
          "confirmRepetitions": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: Repetitions. Default: false"
          },
          "machineTranslationSettings": {
            "$ref": "#/components/schemas/PreTranslateJobSettingsV3DtoJobMachineTranslationSettingsV3DtoV3"
          },
          "nonTranslatableSettings": {
            "$ref": "#/components/schemas/PreTranslateJobSettingsV3DtoJobNonTranslatableSettingsV3DtoV3"
          },
          "overwriteExistingTranslations": {
            "type": "boolean",
            "description": "Overwrite existing translations in target segments. Default: false"
          },
          "setJobStatusCompleted": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed: Set job to completed once pre-translated. Default: false"
          },
          "setJobStatusCompletedWhenConfirmed": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed when all segments confirmed:\nSet job to completed once pre-translated and all segments are confirmed. Default: false"
          },
          "setProjectStatusCompleted": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed: Set project to completed once all jobs pre-translated.\n        Default: false"
          },
          "translationMemorySettings": {
            "$ref": "#/components/schemas/PreTranslateJobSettingsV3DtoJobTranslationMemorySettingsV3DtoV3"
          }
        },
        "description": "Pre-translate settings"
      },
      "PreTranslateJobsV3DtoV3": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "callbackUrl": {
            "type": "string"
          },
          "jobs": {
            "type": "array",
            "description": "Jobs to be pre-translated",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "preTranslateSettings": {
            "$ref": "#/components/schemas/PreTranslateJobSettingsV3DtoV3"
          },
          "segmentFilters": {
            "type": "array",
            "description": "Segment lock-state filter controlling which segments are eligible for pre-translation.\nAllowed values: `LOCKED`, `NOT_LOCKED`. A segment is pre-translated if it matches at least one of the given values.\nDefault (when omitted or empty): `NOT_LOCKED` only, i.e. locked segments are never pre-translated unless\n`LOCKED` is explicitly included.",
            "items": {
              "type": "string",
              "enum": [
                "LOCKED",
                "NOT_LOCKED"
              ]
            }
          },
          "useProjectPreTranslateSettings": {
            "type": "boolean",
            "description": "If pre-translate settings from project should be used.\nIf true, preTranslateSettings values are ignored. No default — either this must be `true`, or\n`preTranslateSettings` must be provided explicitly; omitting both is rejected with 400."
          }
        }
      },
      "PreTranslateSettingsV4DtoMachineTranslationSettingsDtoV4": {
        "type": "object",
        "properties": {
          "confirmMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for:\n                machine translation suggestions above `confirmMatchesThreshold`. Default: false"
          },
          "confirmMatchesThreshold": {
            "type": "number",
            "format": "double",
            "description": "Machine translation suggestions percent. Default: `1.0`",
            "minimum": 0,
            "maximum": 1,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "confirmPassedQualityEvaluation": {
            "type": "boolean",
            "description": "Set segment status to confirmed for segments that pass quality evaluation. Default: false"
          },
          "lock100PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 100% machine translation suggestions. Default: false, use lockMtThreshold to override the threshold"
          },
          "lockMtThreshold": {
            "type": "number",
            "format": "double",
            "description": "Segment locking based on machine translation suggestions with QPS above threshold. Default: 100%, used in combination with lock100PercentMatches",
            "minimum": 0,
            "maximum": 100,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "lockPassedQualityEvaluation": {
            "type": "boolean",
            "description": "Lock segments that pass quality evaluation. Two flows are supported: quality-profile-based (qualityProfileUid is set) and Content-Group-based (qualityProfileUid is null — requires a Content Group linked to the project, skipped if none is linked). Default: false"
          },
          "machineTranslationBehavior": {
            "type": "string",
            "description": "Machine translation behavior. Default: APPLY_MT_ABOVE_THRESHOLD",
            "enum": [
              "APPLY_MT_ABOVE_THRESHOLD",
              "COMPARE_AND_BEST_MATCH"
            ]
          },
          "mtForTMAbove100": {
            "type": "boolean",
            "description": "Use machine translation for segments with a TM match of 100% or more. Default: false"
          },
          "mtQeMatchesInEditors": {
            "type": "boolean",
            "description": "Display quality-estimated machine translation suggestions in the CAT Editor. Default: false"
          },
          "mtSuggestOnlyTmBelow": {
            "type": "boolean",
            "description": "Suggest MT only for segments with a TM match below. Default: true"
          },
          "mtSuggestOnlyTmBelowThreshold": {
            "type": "number",
            "format": "double",
            "description": "Suggest MT only for segments with a TM match below threshold. Default: 1.0",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "qualityProfileUid": {
            "type": "string",
            "description": "UID of the quality profile to use for evaluation (quality-profile-based flow). When set, quality evaluation runs against this profile. When null, the Content-Group-based flow is used instead. Max length: 32. Deprecated, will be removed ahead of the quality-profile sunset.",
            "minLength": 0,
            "maxLength": 32
          },
          "triggerQualityEvaluation": {
            "type": "boolean",
            "description": "Run a quality evaluation step after pre-translate. When omitted, defaults to the value of lockPassedQualityEvaluation for backward compatibility. Default: false"
          },
          "useAltTransOnly": {
            "type": "boolean",
            "description": "Do not put machine translations to target and use alt-trans fields (alt-trans in mxlf).\nDefault: false"
          },
          "useMachineTranslation": {
            "type": "boolean",
            "description": "Pre-translate from machine translation. Default: false"
          }
        },
        "description": "Machine translation related settings"
      },
      "PreTranslateSettingsV4DtoNonTranslatableSettingsDtoV4": {
        "type": "object",
        "properties": {
          "confirm100PercentMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: 100% non-translatables. Default: false"
          },
          "lock100PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 100% non-translatables. Default: false"
          },
          "nonTranslatablesInEditors": {
            "type": "boolean",
            "description": "If non-translatables are enabled in Editors."
          },
          "preTranslateNonTranslatables": {
            "type": "boolean",
            "description": "Pre-translate non-translatables. Default: false"
          }
        },
        "description": "Non-translatables related settings"
      },
      "PreTranslateSettingsV4DtoPseudoTranslateSettingsDtoV4": {
        "type": "object",
        "properties": {
          "keyHashPrefixLen": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 18
          },
          "length": {
            "type": "number",
            "format": "double",
            "description": "Target segment length (%). Supported values: 0.1, 0.5 ... 1.5, 2.0",
            "minimum": 0.1,
            "maximum": 2,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "prefix": {
            "type": "string"
          },
          "pseudoTranslateIntersperse": {
            "type": "boolean",
            "description": "Mix with source text. Default value: true"
          },
          "pseudoTranslateSubstitution": {
            "type": "string",
            "description": "Comma separated list of character map. Example: aá,Bβ,cć,DĎ,eë",
            "minLength": 0,
            "maxLength": 100
          },
          "replacement": {
            "type": "string",
            "description": "Pseudo-translate using",
            "minLength": 1,
            "maxLength": 10
          },
          "suffix": {
            "type": "string"
          }
        },
        "description": "Pseudo translate related settings"
      },
      "PreTranslateSettingsV4DtoRepetitionsSettingsDtoV4": {
        "type": "object",
        "properties": {
          "autoPropagateRepetitions": {
            "type": "boolean",
            "description": "Propagate repetitions. Default: false"
          },
          "autoPropagateToLockedRepetitions": {
            "type": "boolean",
            "description": "Changes in 1st repetition propagate upon confirmation into subsequent locked repetitions. Default: false"
          },
          "confirmRepetitions": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: Repetitions. Default: false"
          },
          "lockSubsequentRepetitions": {
            "type": "boolean",
            "description": "If auto-propagated subsequent repetitions should be locked. Default: false"
          }
        },
        "description": "Repetitions related settings"
      },
      "PreTranslateSettingsV4DtoTranslationMemorySettingsDtoV4": {
        "type": "object",
        "properties": {
          "confirm100PercentMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: 100% translation memory matches. Default: false"
          },
          "confirm101PercentMatches": {
            "type": "boolean",
            "description": "Set segment status to confirmed for: 101% translation memory matches. Default: false"
          },
          "lock100PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 100% translation memory matches. Default: false"
          },
          "lock101PercentMatches": {
            "type": "boolean",
            "description": "Lock section: 101% translation memory matches. Default: false"
          },
          "translationMemoryThreshold": {
            "type": "number",
            "format": "double",
            "description": "Pre-translation threshold percent",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "useTranslationMemory": {
            "type": "boolean",
            "description": "Pre-translate from translation memory. Default: false"
          }
        },
        "description": "Translation memory related settings"
      },
      "PreTranslateSettingsV4DtoV4": {
        "type": "object",
        "properties": {
          "machineTranslationSettings": {
            "$ref": "#/components/schemas/PreTranslateSettingsV4DtoMachineTranslationSettingsDtoV4"
          },
          "nonTranslatableSettings": {
            "$ref": "#/components/schemas/PreTranslateSettingsV4DtoNonTranslatableSettingsDtoV4"
          },
          "overwriteExistingTranslations": {
            "type": "boolean",
            "description": "Overwrite existing translations in target segments. Default: false"
          },
          "preTranslateOnJobCreation": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed: Pre-translate on job creation. Default: false"
          },
          "pseudoTranslateSettings": {
            "$ref": "#/components/schemas/PreTranslateSettingsV4DtoPseudoTranslateSettingsDtoV4"
          },
          "repetitionsSettings": {
            "$ref": "#/components/schemas/PreTranslateSettingsV4DtoRepetitionsSettingsDtoV4"
          },
          "setJobStatusCompleted": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed: Set job to completed once pre-translated. Default: false"
          },
          "setJobStatusCompletedWhenConfirmed": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed when all segments confirmed:\nSet job to completed once pre-translated and all segments are confirmed. Default: false"
          },
          "setProjectStatusCompleted": {
            "type": "boolean",
            "description": "Pre-translate & set job to completed: Set project to completed once all jobs pre-translated.\n        Default: false"
          },
          "translationMemorySettings": {
            "$ref": "#/components/schemas/PreTranslateSettingsV4DtoTranslationMemorySettingsDtoV4"
          }
        },
        "description": "Pre-translate settings"
      },
      "PriceListForImport": {
        "type": "object",
        "properties": {
          "importedPriceRows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceListForImportPriceRow"
            }
          },
          "rows": {
            "type": "array",
            "description": "Parsed rows from the uploaded file",
            "items": {
              "$ref": "#/components/schemas/PriceListForImportPriceRow"
            }
          }
        },
        "description": "Preview of imported price list rows with per-row validation results"
      },
      "PriceListForImportPriceRow": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Validation error messages for this row",
            "items": {
              "type": "string"
            }
          },
          "price": {
            "$ref": "#/components/schemas/PriceListForImportPriceSet"
          },
          "rowNum": {
            "type": "integer",
            "format": "int32",
            "description": "Row number in the source file"
          }
        },
        "description": "Single row from an imported price list file"
      },
      "PriceListForImportPriceSet": {
        "type": "object",
        "properties": {
          "minimumPrice": {
            "type": "number",
            "format": "double",
            "description": "Minimum price for this language pair"
          },
          "prices": {
            "type": "object",
            "description": "Prices per workflow step abbreviation, e.g. {T: 1.0, R: 0.5}",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code"
          },
          "targetLang": {
            "type": "string",
            "description": "Target language code"
          }
        },
        "description": "Price data for a language pair parsed from an import file"
      },
      "PriceListReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ProjectJobPartStatusChangesDtoV2": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "description": "Status changes grouped by project",
            "items": {
              "$ref": "#/components/schemas/JobPartStatusChangesProjectDtoV2"
            }
          }
        }
      },
      "ProjectMTSettingsPerLangDtoV1": {
        "type": "object",
        "required": [
          "targetLang"
        ],
        "properties": {
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "ProjectReferenceFileApi2ResourceCreateReferenceFilesRequest": {
        "type": "object",
        "properties": {
          "file": {
            "type": "array",
            "description": "Files with appropriate `Content-Type` header",
            "items": {
              "$ref": "#/components/schemas/MultipartFile"
            }
          },
          "json": {
            "$ref": "#/components/schemas/CreateReferenceFileNoteDtoV1"
          }
        }
      },
      "ProjectReferenceFilesRequestDtoV1": {
        "type": "object",
        "required": [
          "referenceFiles"
        ],
        "properties": {
          "referenceFiles": {
            "type": "array",
            "description": "List of reference files by integer ID (not UID). Must not be empty.",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          }
        }
      },
      "ProjectReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/A_reference_to_a_project"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ProjectSecuritySettingsDtoV2": {
        "type": "object",
        "properties": {
          "allowLoadingExternalContentInEditors": {
            "type": "boolean",
            "description": "When true, the editor may load external content such as images"
          },
          "allowLoadingIframes": {
            "type": "boolean",
            "description": "When true, the editor may load iframes"
          },
          "allowedDomains": {
            "type": "array",
            "description": "List of domains that are allowed to load iframes in the editor",
            "items": {
              "type": "string"
            }
          },
          "downloadEnabled": {
            "type": "boolean",
            "description": "When true, linguists may download the project TMX"
          },
          "emailNotifications": {
            "type": "boolean",
            "description": "When true, email notifications are enabled for the project"
          },
          "linguistsMayDownloadLqaReport": {
            "type": "boolean",
            "description": "When true, linguists may download the LQA report"
          },
          "linguistsMayEditLockedSegments": {
            "type": "boolean",
            "description": "When true, linguists may edit segments that are locked"
          },
          "linguistsMayEditSource": {
            "type": "boolean",
            "description": "When true, linguists may edit source segments"
          },
          "linguistsMayEditTagContent": {
            "type": "boolean",
            "description": "When true, linguists may edit tag content in segments"
          },
          "notifyJobOwnerStatusChanged": {
            "type": "boolean",
            "description": "When true, the job owner is notified when the job status changes"
          },
          "notifyJobOwnerStatusChangedTemplateUid": {
            "type": "string",
            "description": "UID of the email template used for job-status-changed notifications to the job owner"
          },
          "notifyReference": {
            "type": "boolean",
            "description": "When true, notifications are sent for reference file events"
          },
          "notifyReferenceGroups": {
            "type": "string",
            "description": "Comma-separated list of user groups that receive reference notifications"
          },
          "notifyReferenceTemplateUid": {
            "type": "string",
            "description": "UID of the email template used for reference notifications"
          },
          "notifyUserMentionOrComment": {
            "type": "boolean",
            "description": "When true, users are notified when they are mentioned or receive a comment"
          },
          "notifyUserMentionOrCommentTemplateUid": {
            "type": "string",
            "description": "UID of the email template used for mention and comment notifications"
          },
          "showUserDataToLinguists": {
            "type": "boolean",
            "description": "When true, linguists can see job owner and other user data"
          },
          "strictWorkflowFinish": {
            "type": "boolean",
            "description": "When true, linguists must complete all workflow steps in order. A job in a later workflow step opens read-only in the editor until the preceding step is Completed"
          },
          "triggerWebhooks": {
            "type": "boolean",
            "description": "When true, webhooks are triggered for project events"
          },
          "useVendors": {
            "type": "boolean",
            "description": "When true, vendor organizations may be assigned to the project"
          },
          "userMaySetInstantQA": {
            "type": "boolean",
            "description": "When true, users may enable instant QA on their jobs"
          },
          "usernamesDisplayedInLqaReport": {
            "type": "boolean",
            "description": "When true, user names are visible in the LQA report"
          },
          "usersMaySetAutoPropagation": {
            "type": "boolean",
            "description": "When true, linguists may toggle auto-propagation of translations"
          },
          "vendors": {
            "$ref": "#/components/schemas/VendorSecuritySettingsDtoV2"
          },
          "webEditorEnabledForLinguists": {
            "type": "boolean",
            "description": "When true, the web editor is available to linguists"
          }
        }
      },
      "ProjectStatusAutomationSettingsDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "assignedWhenJobsAccepted": {
            "type": "boolean",
            "description": "Default: false"
          },
          "assignedWhenJobsAssigned": {
            "type": "boolean",
            "description": "Default: false"
          },
          "cancelledWhenJobsCancelled": {
            "type": "boolean",
            "description": "Default: false"
          },
          "completedWhenJobsCompleted": {
            "type": "boolean",
            "description": "Default: false"
          },
          "completedWhenJobsCompletedOrDeliveredInLastWfStep": {
            "type": "boolean",
            "description": "Default: false"
          },
          "completedWhenJobsDelivered": {
            "type": "boolean",
            "description": "Default: false"
          },
          "completedWhenProjectCompletedByVendor": {
            "type": "boolean",
            "description": "Default: false"
          }
        }
      },
      "ProjectStatusChangeDtoV1": {
        "type": "object",
        "properties": {
          "changedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "changedDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date the status change was recorded"
          },
          "status": {
            "type": "string",
            "description": "New status of the project",
            "enum": [
              "NEW",
              "ASSIGNED",
              "COMPLETED",
              "ACCEPTED_BY_VENDOR",
              "DECLINED_BY_VENDOR",
              "COMPLETED_BY_VENDOR",
              "CANCELLED"
            ]
          }
        },
        "description": "A single project-level status change"
      },
      "ProjectStatusChangesDtoV1": {
        "type": "object",
        "properties": {
          "statusChanges": {
            "type": "array",
            "description": "Status changes of the project, ordered by the requested sort order",
            "items": {
              "$ref": "#/components/schemas/ProjectStatusChangeDtoV1"
            }
          }
        },
        "description": "List of project-level status changes"
      },
      "ProjectTemplate": {
        "type": "object",
        "properties": {
          "assignedTo": {
            "type": "array",
            "description": "\nPer-target-language provider assignments. Null when the template has workflow steps; use workflowSettings instead.",
            "items": {
              "$ref": "#/components/schemas/AssignmentPerTargetLangDtoProjectTemplateV1"
            }
          },
          "businessUnit": {
            "$ref": "#/components/schemas/BusinessUnitReferenceV1"
          },
          "client": {
            "$ref": "#/components/schemas/ClientReferenceV1"
          },
          "costCenter": {
            "$ref": "#/components/schemas/CostCenterReferenceV1"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the template was created"
          },
          "dateModified": {
            "type": "string",
            "format": "date-time",
            "example": "{ \"epochSeconds\": 1624619701, \"nano\": 0 }",
            "description": "Deprecated - use dateTimeModified field instead"
          },
          "dateTimeModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the template was last modified"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "dynamicTitle": {
            "type": "string",
            "description": "Pattern used to generate project names when useDynamicTitle is true"
          },
          "fileHandoverSettings": {
            "$ref": "#/components/schemas/FileHandoverSettingsReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "importSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "name": {
            "type": "string",
            "description": "Name inherited from the source project the template was created from"
          },
          "note": {
            "type": "string",
            "description": "Note inherited from the source project"
          },
          "notifyProviders": {
            "$ref": "#/components/schemas/ProjectTemplateNotifyProviderDtoProjectTemplateV1"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "projectWorkflowSettings": {
            "$ref": "#/components/schemas/ProjectWorkflowSettingsDtoV1"
          },
          "sourceLang": {
            "type": "string",
            "description": "\nSource language code, inherited from the project the template was created from. Cannot be set when creating a template."
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "targetLangs": {
            "type": "array",
            "description": "\nTarget language codes, inherited from the project the template was created from. Cannot be set when creating a template.",
            "items": {
              "type": "string"
            }
          },
          "templateName": {
            "type": "string",
            "description": "Name of the project template. This is the value supplied as `name` in the create request."
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "useDynamicTitle": {
            "type": "boolean",
            "description": "When true, generated project names use the dynamic title pattern"
          },
          "vendor": {
            "$ref": "#/components/schemas/VendorReferenceV1"
          },
          "workflowSettings": {
            "type": "array",
            "description": "\nPer-workflow-step provider assignments and settings. Empty when the template has no workflow steps.",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepSettingsDtoProjectTemplateV1"
            }
          },
          "workflowSteps": {
            "type": "array",
            "description": "\nWorkflow steps, inherited from the project the template was created from. Cannot be set when creating a template.",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepDtoV1"
            }
          }
        }
      },
      "ProjectTemplateCreateActionDtoProjectTemplateV1": {
        "type": "object",
        "required": [
          "name",
          "project"
        ],
        "properties": {
          "dynamicTitle": {
            "type": "string",
            "description": "Pattern used to generate project names when useDynamicTitle is true",
            "minLength": 0,
            "maxLength": 255
          },
          "importSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "name": {
            "type": "string",
            "description": "Name of the template. Returned as `templateName` in the response.",
            "minLength": 0,
            "maxLength": 255
          },
          "project": {
            "$ref": "#/components/schemas/UidReference"
          },
          "useDynamicTitle": {
            "type": "boolean",
            "description": "When true, generated project names use the dynamic title pattern"
          }
        }
      },
      "ProjectTemplateDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLangs": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "templateName": {
            "type": "string"
          },
          "workflowSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsDto"
            }
          }
        }
      },
      "ProjectTemplateEditDtoProjectTemplateV1": {
        "type": "object",
        "required": [
          "templateName"
        ],
        "properties": {
          "assignedTo": {
            "type": "array",
            "description": "only use for projects without workflows; otherwise specify in the workflowSettings object",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsAssignedToDto"
            }
          },
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "dynamicTitle": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "fileHandover": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          },
          "projectWorkflowSettings": {
            "$ref": "#/components/schemas/ProjectWorkflowSettingsDtoV1"
          },
          "sourceLang": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "templateName": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "useDynamicTitle": {
            "type": "boolean"
          },
          "vendor": {
            "$ref": "#/components/schemas/IdReference"
          },
          "workFlowSettings": {
            "type": "array",
            "description": "Per-step workflow configuration: provider assignments, notification settings, and LQA profiles. Replaces all workflow step settings for this template.",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepSettingsEditDtoProjectTemplateV1"
            }
          }
        }
      },
      "ProjectTemplateEditV2DtoProjectTemplateV2": {
        "type": "object",
        "required": [
          "templateName"
        ],
        "properties": {
          "assignedTo": {
            "type": "array",
            "description": "only use for projects without workflows; otherwise specify in the workflowSettings object",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsAssignedToDto"
            }
          },
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/IdReference"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "dynamicTitle": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "fileHandover": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importSettings": {
            "$ref": "#/components/schemas/UidReference"
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          },
          "projectWorkflowSettings": {
            "$ref": "#/components/schemas/ProjectWorkflowSettingsV2DtoV2"
          },
          "sourceLang": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "templateName": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "useDynamicTitle": {
            "type": "boolean"
          },
          "vendor": {
            "$ref": "#/components/schemas/IdReference"
          },
          "workFlowSettings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepSettingsEditV2DtoV2"
            }
          }
        }
      },
      "ProjectTemplateNotifyProviderDtoProjectTemplateV1": {
        "type": "object",
        "required": [
          "organizationEmailTemplate"
        ],
        "properties": {
          "notificationIntervalInMinutes": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 1440
          },
          "organizationEmailTemplate": {
            "$ref": "#/components/schemas/ObjectReference"
          }
        }
      },
      "ProjectTemplatePatchDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/NullableUidReference"
          },
          "client": {
            "$ref": "#/components/schemas/NullableUidReference"
          },
          "costCenter": {
            "$ref": "#/components/schemas/NullableUidReference"
          },
          "domain": {
            "$ref": "#/components/schemas/NullableUidReference"
          },
          "name": {
            "type": "string",
            "description": "Project name; omit to leave unchanged",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Note; omit to leave unchanged",
            "minLength": 0,
            "maxLength": 4096
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language locale; omit to leave unchanged"
          },
          "subDomain": {
            "$ref": "#/components/schemas/NullableUidReference"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language locales; omit to leave unchanged, empty list clears all",
            "items": {
              "type": "string"
            }
          },
          "templateName": {
            "type": "string",
            "description": "Template name; omit to leave unchanged",
            "minLength": 0,
            "maxLength": 255
          },
          "vendor": {
            "$ref": "#/components/schemas/NullableUidReference"
          },
          "workflowSettings": {
            "type": "array",
            "description": "Per-step workflow configuration (provider assignments, notification settings, LQA profile); omit to leave unchanged. When present, replaces all workflow-step settings for the template — steps not included in the list have their settings removed.",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepSettingsEditDtoProjectTemplateV1"
            }
          }
        }
      },
      "ProjectTemplateReferenceFileApiResourceCreateProjectTemplateReferenceFilesRequest": {
        "type": "object",
        "properties": {
          "file": {
            "type": "array",
            "description": "Files with appropriate `Content-Type` header",
            "items": {
              "$ref": "#/components/schemas/MultipartFile"
            }
          },
          "json": {
            "$ref": "#/components/schemas/CreateProjectTemplateReferenceFileNoteDtoProjectTemplateV1"
          }
        }
      },
      "ProjectTemplateReferenceFileReferencePageDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateReferenceFileReferenceProjectTemplateV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ProjectTemplateReferenceFileReferenceProjectTemplateV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "filename": {
            "type": "string",
            "description": "Filename of the reference file. Null for note-only references."
          },
          "id": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Text note attached to the reference. Null if no note was provided."
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ProjectTemplateReferenceFilesDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "referenceFiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateReferenceFileReferenceProjectTemplateV1"
            }
          }
        }
      },
      "ProjectTemplateReferenceFilesRequestDtoProjectTemplateV1": {
        "type": "object",
        "required": [
          "referenceFiles"
        ],
        "properties": {
          "referenceFiles": {
            "type": "array",
            "description": "List of reference file UIDs to act on. Must not be empty.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "ProjectTemplateReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ProjectTemplateReferenceV1": {
        "type": "object",
        "properties": {
          "templateName": {
            "type": "string",
            "description": "Name of the project template"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the project template"
          }
        },
        "description": "Project template reference"
      },
      "ProjectTemplateTermBaseDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "qualityAssurance": {
            "type": "boolean"
          },
          "readMode": {
            "type": "boolean"
          },
          "targetLocale": {
            "type": "string"
          },
          "termBase": {
            "$ref": "#/components/schemas/TermBaseDtoV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          },
          "writeMode": {
            "type": "boolean"
          }
        }
      },
      "ProjectTemplateTermBaseListDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "termBases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateTermBaseDtoProjectTemplateV1"
            }
          }
        }
      },
      "ProjectTemplateTransMemoryDtoV3": {
        "type": "object",
        "properties": {
          "applyPenaltyTo101Only": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "penalty": {
            "type": "number",
            "format": "double"
          },
          "readMode": {
            "type": "boolean"
          },
          "targetLocale": {
            "type": "string"
          },
          "transMemory": {
            "$ref": "#/components/schemas/TransMemoryDtoV3"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV3"
          },
          "writeMode": {
            "type": "boolean"
          }
        }
      },
      "ProjectTemplateTransMemoryListDtoV3": {
        "type": "object",
        "properties": {
          "maxTmsEnabled": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of translation memories that can be assigned to the project template"
          },
          "transMemories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateTransMemoryDtoV3"
            }
          }
        }
      },
      "ProjectTemplateTransMemoryListV2DtoV2": {
        "type": "object",
        "properties": {
          "transMemories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateTransMemoryV2DtoV2"
            }
          }
        }
      },
      "ProjectTemplateTransMemoryV2DtoV2": {
        "type": "object",
        "properties": {
          "applyPenaltyTo101Only": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "penalty": {
            "type": "number",
            "format": "double"
          },
          "readMode": {
            "type": "boolean"
          },
          "targetLocale": {
            "type": "string"
          },
          "transMemory": {
            "$ref": "#/components/schemas/TransMemoryDtoV2"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV2"
          },
          "writeMode": {
            "type": "boolean"
          }
        }
      },
      "ProjectTemplateWorkflowSettingsAssignedToDto": {
        "type": "object",
        "properties": {
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "ProjectTemplateWorkflowSettingsDto": {
        "type": "object",
        "properties": {
          "assignedTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsAssignedToDto"
            }
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          }
        }
      },
      "ProjectTermBaseDtoV1": {
        "type": "object",
        "properties": {
          "qualityAssurance": {
            "type": "boolean"
          },
          "readMode": {
            "type": "boolean"
          },
          "targetLocale": {
            "type": "string"
          },
          "termBase": {
            "$ref": "#/components/schemas/TermBaseDtoV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          },
          "writeMode": {
            "type": "boolean"
          }
        }
      },
      "ProjectTermBaseListDtoV1": {
        "type": "object",
        "properties": {
          "termBases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTermBaseDtoV1"
            }
          }
        }
      },
      "ProjectTermBaseReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "readMode": {
            "type": "boolean"
          },
          "targetLang": {
            "type": "string"
          },
          "termBase": {
            "$ref": "#/components/schemas/TranslationResourceReferenceV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ObjectReference"
          },
          "writeMode": {
            "type": "boolean"
          }
        }
      },
      "ProjectTransMemoryDtoV3": {
        "type": "object",
        "properties": {
          "applyPenaltyTo101Only": {
            "type": "boolean",
            "description": "When true, penalty applies only to 101% matches"
          },
          "order": {
            "type": "integer",
            "format": "int32",
            "description": "Priority order when TM prioritization is enabled"
          },
          "penalty": {
            "type": "number",
            "format": "double",
            "description": "Penalty applied to matches from this translation memory (0-100)"
          },
          "readMode": {
            "type": "boolean",
            "description": "When true, the translation memory is used for reading (pre-translation and suggestions)"
          },
          "readable": {
            "type": "boolean",
            "description": "When true, the current user is allowed to view the translation memory"
          },
          "targetLocale": {
            "type": "string",
            "description": "Target locale this assignment is scoped to; null means all target languages"
          },
          "transMemory": {
            "$ref": "#/components/schemas/TransMemoryDtoV3"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV3"
          },
          "writeMode": {
            "type": "boolean",
            "description": "When true, confirmed segments are written to the translation memory"
          }
        }
      },
      "ProjectTransMemoryListDtoV3": {
        "type": "object",
        "properties": {
          "maxTmsEnabled": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of translation memories that can be assigned to the project"
          },
          "transMemories": {
            "type": "array",
            "description": "Translation memories assigned to the project",
            "items": {
              "$ref": "#/components/schemas/ProjectTransMemoryDtoV3"
            }
          }
        }
      },
      "ProjectTranslationMemoryReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "penalty": {
            "type": "number",
            "format": "double"
          },
          "readMode": {
            "type": "boolean"
          },
          "targetLang": {
            "type": "string"
          },
          "transMem": {
            "$ref": "#/components/schemas/TranslationResourceReferenceV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ObjectReference"
          }
        }
      },
      "ProjectWorkflowSettingsDtoV1": {
        "type": "object",
        "properties": {
          "completeUnassigned": {
            "type": "boolean"
          },
          "propagateTranslationsToLowerWfDuringUpdateSource": {
            "type": "boolean"
          }
        }
      },
      "ProjectWorkflowSettingsReferenceV1": {
        "type": "object",
        "properties": {
          "completeUnassigned": {
            "type": "boolean"
          },
          "propagateTranslationsToLowerWfDuringUpdateSource": {
            "type": "boolean"
          }
        }
      },
      "ProjectWorkflowSettingsV2DtoV2": {
        "type": "object",
        "properties": {
          "completeUnassigned": {
            "type": "boolean"
          },
          "propagateTranslationsToLowerWfDuringUpdateSource": {
            "type": "boolean"
          }
        }
      },
      "ProjectWorkflowStepDtoV2": {
        "type": "object",
        "properties": {
          "abbreviation": {
            "type": "string",
            "description": "Abbreviation of the workflow step name"
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal numeric identifier of the project workflow step"
          },
          "name": {
            "type": "string",
            "description": "Display name of the workflow step"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Position of this step in the workflow, starting from 1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV2"
          }
        }
      },
      "ProjectWorkflowStepListDtoV2": {
        "type": "object",
        "properties": {
          "projectWorkflowSteps": {
            "type": "array",
            "description": "Workflow steps configured for the project",
            "items": {
              "$ref": "#/components/schemas/ProjectWorkflowStepDtoV2"
            }
          }
        }
      },
      "ProjectWorkflowStepReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PrompsitMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "PrompsitMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "accessKey"
            ],
            "properties": {
              "accessKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "Prompt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "PromptSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password",
              "username"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "PropertiesSettingsDtoV1": {
        "type": "object",
        "properties": {
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "ProtectedUserReferenceV1": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "uid": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          }
        }
      },
      "ProviderListDtoProvidersDtoV2": {
        "type": "object",
        "properties": {
          "all": {
            "type": "array",
            "description": "All providers that may be assigned to the project",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "relevant": {
            "type": "array",
            "description": "Providers that are most relevant based on project languages and history",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          }
        }
      },
      "ProviderListDtoV2": {
        "type": "object",
        "properties": {
          "providers": {
            "$ref": "#/components/schemas/ProviderListDtoProvidersDtoV2"
          }
        }
      },
      "ProviderReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ProviderReferenceV1": {
        "type": "object",
        "required": [
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "uid": {
            "type": "string",
            "description": "UID of the provider",
            "readOnly": true
          }
        }
      },
      "ProvidersPerLanguage": {
        "type": "object",
        "properties": {
          "assignedUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "targetLang": {
            "type": "string"
          }
        }
      },
      "PsdSettingsDtoV1": {
        "type": "object",
        "properties": {
          "extractHiddenLayers": {
            "type": "boolean",
            "description": "Default: true"
          },
          "extractLockedLayers": {
            "type": "boolean",
            "description": "Default: true"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "PseudoTranslateActionDtoV1": {
        "type": "object",
        "properties": {
          "keyHashPrefixLen": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 18
          },
          "length": {
            "type": "number",
            "format": "double"
          },
          "prefix": {
            "type": "string"
          },
          "replacement": {
            "type": "string",
            "minLength": 1,
            "maxLength": 10
          },
          "substitution": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubstituteDtoV1"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "suffix": {
            "type": "string"
          }
        }
      },
      "PseudoTranslateActionDtoV2": {
        "type": "object",
        "properties": {
          "intersperse": {
            "type": "boolean",
            "example": true,
            "description": "Mix with source text"
          },
          "keyHashPrefixLen": {
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 18
          },
          "length": {
            "type": "number",
            "format": "double"
          },
          "prefix": {
            "type": "string"
          },
          "replacement": {
            "type": "string"
          },
          "substitution": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubstituteDtoV2"
            },
            "maxItems": 2147483647,
            "minItems": 0
          },
          "suffix": {
            "type": "string"
          }
        }
      },
      "PseudoTranslateWrapperDtoV2": {
        "type": "object",
        "required": [
          "jobParts",
          "pseudoTranslate"
        ],
        "properties": {
          "jobParts": {
            "$ref": "#/components/schemas/JobPartReadyReferences"
          },
          "pseudoTranslate": {
            "$ref": "#/components/schemas/PseudoTranslateActionDtoV2"
          }
        }
      },
      "QACheckDtoV2": {
        "type": "object",
        "required": [
          "name",
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "name": {
            "type": "string",
            "description": "Identifies the QA check. Note on \"strictJobStatus\": unlike the other check names, this is not a content/segment-level QA rule. It is the project/template-wide completion gate: setting its \"enabled\" to true blocks linguists from setting a job to Completed while QA warnings are unresolved for that job. Its \"ignorable\" has no effect for this check name.",
            "enum": [
              "emptyTarget",
              "inconsistentTranslation",
              "joinMarksInconsistency",
              "missingNumber",
              "segmentNotConfirmed",
              "nonConformingTerms",
              "multipleSpaces",
              "endPunctuation",
              "targetLength",
              "absoluteTargetLength",
              "relativeTargetLength",
              "inconsistentFormatting",
              "unresolvedComment",
              "emptyPairTags",
              "strictJobStatus",
              "forbiddenStrings",
              "excludeLockedSegments",
              "ignoreNotApprovedTerms",
              "spellCheck",
              "repeatedWords",
              "inconsistentTagContent",
              "emptyTagContent",
              "malformed",
              "forbiddenTerms",
              "targetLengthPercent",
              "targetLengthPerSegment",
              "newerAtLowerLevel",
              "leadingAndTrailingSpaces",
              "targetSourceIdentical",
              "ignoreInAllWorkflowSteps",
              "regexp",
              "unmodifiedFuzzyTranslation",
              "unmodifiedFuzzyTranslationTM",
              "unmodifiedFuzzyTranslationMTNT",
              "moravia",
              "extraNumbers",
              "nestedTags"
            ]
          },
          "type": {
            "type": "string",
            "description": "Check type; determines which additional fields apply",
            "enum": [
              "VOID",
              "NUMBER",
              "STRING",
              "REGEX",
              "MORAVIA"
            ]
          }
        }
      },
      "QASettingsDtoV2": {
        "type": "object",
        "properties": {
          "checks": {
            "type": "array",
            "description": "List of QA check configurations. The \"strictJobStatus\" check is a special case: it is not a content/segment-level QA rule but the project/template-wide completion gate — setting its \"enabled\" to true blocks linguists from setting a job to Completed while QA warnings are unresolved for that job. Its \"ignorable\" has no effect for this check name.",
            "items": {
              "$ref": "#/components/schemas/QACheckDtoV2"
            }
          }
        }
      },
      "QeSegmentWarningDtoV1": {
        "type": "object",
        "properties": {
          "jobPartUid": {
            "type": "string",
            "description": "UID of the job part this segment belongs to. Useful when the request contains multiple job parts and the caller needs to map each segment back to its source job part."
          },
          "segmentId": {
            "type": "string"
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QeWarningDtoV1"
            }
          }
        }
      },
      "QeWarningDtoV1": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "qeId": {
            "type": "string",
            "description": "Identifier of the QE rule that produced the warning."
          },
          "type": {
            "type": "string",
            "description": "Category of the warning (e.g. quality issue type)."
          }
        }
      },
      "QeWarningsRequestDtoV1": {
        "type": "object",
        "required": [
          "jobParts"
        ],
        "properties": {
          "initialSegmentId": {
            "type": "string",
            "description": "Segment id to resume pagination from. Omit (or send null) on the first request to start from the first segment; for subsequent pages, pass the last `segmentId` returned in the previous response's `segmentWarnings`."
          },
          "jobParts": {
            "type": "array",
            "description": "Job parts to fetch warnings for. Must all belong to the same project and the same workflow step. 1–100 entries.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "QeWarningsResponseDtoV1": {
        "type": "object",
        "properties": {
          "endReached": {
            "type": "boolean",
            "description": "True when there are no further segments to fetch beyond this response."
          },
          "everEvaluated": {
            "type": "boolean",
            "description": "True only if every jobPart in the request's jobParts has ever had an AI Check evaluation started. False if even a single requested jobPart has never been evaluated. Note: the flag is set when evaluation is queued, so it remains true even if the evaluation subsequently fails."
          },
          "segmentWarnings": {
            "type": "array",
            "description": "Warnings grouped by segment, in segment order starting at the requested initialSegmentId. Each response covers AI-generated quality estimation warningsfor up to 100 segments.",
            "items": {
              "$ref": "#/components/schemas/QeSegmentWarningDtoV1"
            }
          }
        }
      },
      "QualityAssuranceBatchRunDtoV3": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "UIDs of jobs to run QA on; 1–500 jobs",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 500,
            "minItems": 1
          },
          "maxQaWarningsCount": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of QA warnings in result, default: 100. For efficiency reasons QA\nwarnings are processed with minimum segments chunk size 10, therefore slightly more warnings are returned.",
            "minimum": 1,
            "maximum": 1000
          },
          "settings": {
            "$ref": "#/components/schemas/QualityAssuranceRunDtoV3"
          }
        }
      },
      "QualityAssuranceChecksDtoV4": {
        "type": "object",
        "properties": {
          "enabledChecks": {
            "type": "array",
            "description": "Enabled QA checks with their configuration",
            "items": {
              "$ref": "#/components/schemas/EnabledCheckDtoV4"
            }
          },
          "excludeLockedSegments": {
            "type": "boolean",
            "description": "When true, locked segments are excluded from QA"
          },
          "forbiddenStrings": {
            "type": "array",
            "description": "List of forbidden strings checked during QA",
            "items": {
              "type": "string"
            }
          },
          "regexpRules": {
            "type": "array",
            "description": "Regexp-based QA rules configured for the project",
            "items": {
              "$ref": "#/components/schemas/RegexpCheckRuleDtoV4"
            }
          },
          "strictJobStatus": {
            "type": "boolean",
            "description": "When true, QA runs only on jobs in a strict workflow status"
          },
          "userCanSetInstantQA": {
            "type": "boolean",
            "description": "When true, users may configure instant QA themselves"
          }
        }
      },
      "QualityAssuranceDtoV1": {
        "type": "object",
        "properties": {
          "ignoredWarningsCount": {
            "type": "integer",
            "format": "int64"
          },
          "segmentsCount": {
            "type": "integer",
            "format": "int64"
          },
          "warningsCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "QualityAssuranceResponseDtoSegmentWarningsDtoV3": {
        "type": "object",
        "properties": {
          "ignoredChecks": {
            "type": "array",
            "description": "QA check types that were ignored for this segment",
            "items": {
              "type": "string"
            }
          },
          "segmentId": {
            "type": "string",
            "description": "Identifier of the segment"
          },
          "warnings": {
            "type": "array",
            "description": "QA warnings for this segment",
            "items": {
              "$ref": "#/components/schemas/SegmentWarningDtoV3"
            }
          }
        }
      },
      "QualityAssuranceResponseDtoV3": {
        "type": "object",
        "properties": {
          "finished": {
            "type": "boolean",
            "description": "True if all QA checks completed; false if truncated by maxQaWarningsCount"
          },
          "segmentWarnings": {
            "type": "array",
            "description": "Warnings grouped by segment; only segments with warnings are included",
            "items": {
              "$ref": "#/components/schemas/QualityAssuranceResponseDtoSegmentWarningsDtoV3"
            }
          }
        }
      },
      "QualityAssuranceRunDtoV3": {
        "type": "object",
        "properties": {
          "initialSegment": {
            "$ref": "#/components/schemas/SegmentReferenceV1"
          },
          "maxQaWarningsCount": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of QA warnings in result, default: 100. For efficiency reasons QA\nwarnings are processed with minimum segments chunk size 10, therefore slightly more warnings are returned.",
            "minimum": 1,
            "maximum": 1000
          },
          "warningTypes": {
            "type": "array",
            "description": "Filter results to these warning types; when empty, all types are returned. Each\nvalue flags:\n- `Formatting`: tags/formatting are missing or invalid, or there are missing or redundant line breaks\n- `JoinTags`: the tag count in a joined segment's translation does not match the source\n- `EmptyPairTags`: a paired tag has no content between its opening and closing tag\n- `InconsistentTagContent`: the same tag holds different content across repeated occurrences in the segment\n- `EmptyTagContent`: a tag's metadata content is empty when it should not be\n- `NestedTags`: a tag is nested in the wrong position relative to its sibling tags (missing/misplaced tags)\n- `Malformed`: the segment's tag markup is malformed and could not be parsed\n- `MissingNumbersV3`: a number present in the source is missing from the translation\n- `ExtraNumbersV3`: the translation contains a number not present in the source\n- `NonConformingTerm`: the translated term does not match the assigned term base entry\n- `ForbiddenTerm`: the translation uses a term marked forbidden in the term base\n- `SpellCheck`: the translation contains a misspelled word\n- `ForbiddenString`: the translation contains a string prohibited for the project\n- `TranslationLength`: the target length is outside the range configured in the project's target-length settings\n- `AbsoluteLength`: the target length exceeds the absolute character limit configured for target length\n- `RelativeLength`: the target length is outside the percentage limit (vs. source length) configured for target length\n- `MultipleSpacesV3`: the translation has consecutive spaces the source does not have\n- `LeadingAndTrailingSpaces`: the translation has extra or missing whitespace at its start or end\n- `RepeatedWord`: a word is repeated consecutively in the translation\n- `UnresolvedComment`: the segment has an unresolved comment\n- `UnresolvedConversation`: the segment has an unresolved LQA conversation\n- `InconsistentTranslationTargetSource`: the same translation is used for different source segments\n- `InconsistentTranslationSourceTarget`: the same source text is translated inconsistently across segments\n- `TargetSourceIdentical`: the translation is identical to the source text",
            "items": {
              "type": "string",
              "enum": [
                "EmptyTranslation",
                "TrailingPunctuation",
                "Formatting",
                "JoinTags",
                "MissingNumbersV3",
                "MultipleSpacesV3",
                "NonConformingTerm",
                "NotConfirmed",
                "TranslationLength",
                "AbsoluteLength",
                "RelativeLength",
                "UnresolvedComment",
                "EmptyPairTags",
                "InconsistentTranslationTargetSource",
                "InconsistentTranslationSourceTarget",
                "ForbiddenString",
                "SpellCheck",
                "RepeatedWord",
                "InconsistentTagContent",
                "EmptyTagContent",
                "Malformed",
                "ForbiddenTerm",
                "NewerAtLowerLevel",
                "LeadingAndTrailingSpaces",
                "LeadingSpaces",
                "TrailingSpaces",
                "TargetSourceIdentical",
                "SourceOrTargetRegexp",
                "UnmodifiedFuzzyTranslation",
                "UnmodifiedFuzzyTranslationTM",
                "UnmodifiedFuzzyTranslationMTNT",
                "Moravia",
                "ExtraNumbersV3",
                "UnresolvedConversation",
                "NestedTags",
                "FuzzyInconsistencyTargetSource",
                "FuzzyInconsistencySourceTarget",
                "CustomQA",
                "MissingNonTranslatableAnnotation"
              ]
            },
            "maxItems": 100,
            "minItems": 0
          }
        }
      },
      "QualityAssuranceSegmentsRunDtoV3": {
        "type": "object",
        "required": [
          "jobsAndSegments"
        ],
        "properties": {
          "jobsAndSegments": {
            "type": "array",
            "description": "Jobs and their specific segment IDs to run QA on; 1–100 entries",
            "items": {
              "$ref": "#/components/schemas/JobPartSegmentsDtoV3"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "maxQaWarningsCount": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of QA warnings in result, default: 100. For efficiency reasons QA\nwarnings are processed with minimum segments chunk size 10, therefore slightly more warnings are returned.",
            "minimum": 1,
            "maximum": 1000
          },
          "warningTypes": {
            "type": "array",
            "description": "Filter results to these warning types; when empty only fast checks run. Each\nvalue flags:\n- `Formatting`: tags/formatting are missing or invalid, or there are missing or redundant line breaks\n- `JoinTags`: the tag count in a joined segment's translation does not match the source\n- `EmptyPairTags`: a paired tag has no content between its opening and closing tag\n- `InconsistentTagContent`: the same tag holds different content across repeated occurrences in the segment\n- `EmptyTagContent`: a tag's metadata content is empty when it should not be\n- `NestedTags`: a tag is nested in the wrong position relative to its sibling tags (missing/misplaced tags)\n- `Malformed`: the segment's tag markup is malformed and could not be parsed\n- `MissingNumbersV3`: a number present in the source is missing from the translation\n- `ExtraNumbersV3`: the translation contains a number not present in the source\n- `NonConformingTerm`: the translated term does not match the assigned term base entry\n- `ForbiddenTerm`: the translation uses a term marked forbidden in the term base\n- `SpellCheck`: the translation contains a misspelled word\n- `ForbiddenString`: the translation contains a string prohibited for the project\n- `TranslationLength`: the target length is outside the range configured in the project's target-length settings\n- `AbsoluteLength`: the target length exceeds the absolute character limit configured for target length\n- `RelativeLength`: the target length is outside the percentage limit (vs. source length) configured for target length\n- `MultipleSpacesV3`: the translation has consecutive spaces the source does not have\n- `LeadingAndTrailingSpaces`: the translation has extra or missing whitespace at its start or end\n- `RepeatedWord`: a word is repeated consecutively in the translation\n- `UnresolvedComment`: the segment has an unresolved comment\n- `UnresolvedConversation`: the segment has an unresolved LQA conversation\n- `InconsistentTranslationTargetSource`: the same translation is used for different source segments\n- `InconsistentTranslationSourceTarget`: the same source text is translated inconsistently across segments\n- `TargetSourceIdentical`: the translation is identical to the source text",
            "items": {
              "type": "string",
              "enum": [
                "EmptyTranslation",
                "TrailingPunctuation",
                "Formatting",
                "JoinTags",
                "MissingNumbersV3",
                "MultipleSpacesV3",
                "NonConformingTerm",
                "NotConfirmed",
                "TranslationLength",
                "AbsoluteLength",
                "RelativeLength",
                "UnresolvedComment",
                "EmptyPairTags",
                "InconsistentTranslationTargetSource",
                "InconsistentTranslationSourceTarget",
                "ForbiddenString",
                "SpellCheck",
                "RepeatedWord",
                "InconsistentTagContent",
                "EmptyTagContent",
                "Malformed",
                "ForbiddenTerm",
                "NewerAtLowerLevel",
                "LeadingAndTrailingSpaces",
                "LeadingSpaces",
                "TrailingSpaces",
                "TargetSourceIdentical",
                "SourceOrTargetRegexp",
                "UnmodifiedFuzzyTranslation",
                "UnmodifiedFuzzyTranslationTM",
                "UnmodifiedFuzzyTranslationMTNT",
                "Moravia",
                "ExtraNumbersV3",
                "UnresolvedConversation",
                "NestedTags",
                "FuzzyInconsistencyTargetSource",
                "FuzzyInconsistencySourceTarget",
                "CustomQA",
                "MissingNonTranslatableAnnotation"
              ]
            },
            "maxItems": 100,
            "minItems": 0
          }
        }
      },
      "QualityEvaluationAsyncRequestDtoV1": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "callbackUrl": {
            "type": "string",
            "description": "URL to be called once evaluation of all the selected job parts has finished. Called at most once per request."
          },
          "confirmSegments": {
            "type": "boolean",
            "example": false,
            "description": "Confirm segments that pass all AI checks. Defaults to false (segments are not confirmed)."
          },
          "jobs": {
            "type": "array",
            "description": "Job parts to evaluate; 1–50 per request, all from the same project and workflow step, and in a ready state.",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 50,
            "minItems": 1
          },
          "lockSegments": {
            "type": "boolean",
            "example": true,
            "description": "Lock segments that pass all AI checks. Defaults to true (segments are locked)."
          }
        }
      },
      "QuarkTagSettingsDtoV1": {
        "type": "object",
        "properties": {
          "removeKerningTrackingTags": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "Query": {
        "type": "object",
        "properties": {
          "lang": {
            "type": "string"
          },
          "query": {
            "type": "string"
          }
        }
      },
      "QuotaDtoV1": {
        "type": "object",
        "required": [
          "quantity"
        ],
        "properties": {
          "quantity": {
            "type": "integer",
            "format": "int32",
            "description": "Quota quantity, must be greater than 0"
          },
          "timeUnit": {
            "type": "string",
            "description": "Time unit of the quota. Default: DAY",
            "enum": [
              "HOUR",
              "DAY"
            ]
          },
          "unit": {
            "type": "string",
            "description": "Billing unit of the quota. Default: Word",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          }
        },
        "description": "Volume of work a due date scheme's quota is calculated from"
      },
      "QuoteCreateV2DtoV2": {
        "type": "object",
        "required": [
          "analyse",
          "name",
          "priceList",
          "project"
        ],
        "properties": {
          "additionalSteps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "analyse": {
            "$ref": "#/components/schemas/IdReference"
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/IdReference"
          },
          "priceList": {
            "$ref": "#/components/schemas/IdReference"
          },
          "project": {
            "$ref": "#/components/schemas/UidReference"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "units": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QuoteUnitsDtoV2"
            }
          },
          "workflowSettings": {
            "type": "array",
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/QuoteWorkflowSettingDtoV2"
            }
          }
        }
      },
      "QuoteDtoPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/A_quote_for_translation_work"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "QuoteUnitsDtoV2": {
        "type": "object",
        "required": [
          "analyseLanguagePart"
        ],
        "properties": {
          "analyseLanguagePart": {
            "$ref": "#/components/schemas/IdReference"
          },
          "value": {
            "type": "number",
            "format": "double",
            "description": "Number of hours for this analyse language part",
            "minimum": 0
          }
        }
      },
      "QuoteWorkflowSettingDtoV2": {
        "type": "object",
        "required": [
          "workflowStep"
        ],
        "properties": {
          "units": {
            "type": "array",
            "description": "Per-analyze-language-part hour values for the Hour billing unit",
            "items": {
              "$ref": "#/components/schemas/QuoteUnitsDtoV2"
            },
            "maxItems": 100,
            "minItems": 0
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "REGEX": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QACheckDtoV2"
          },
          {
            "type": "object",
            "properties": {
              "rules": {
                "type": "array",
                "description": "List of regular-expression rules for this check",
                "items": {
                  "$ref": "#/components/schemas/RegexpCheckRuleDtoV2"
                }
              }
            }
          }
        ]
      },
      "ReferenceCorrelation": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "PARENT"
            ]
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ReferenceFileAccessDtoV1": {
        "type": "object",
        "properties": {
          "canCreate": {
            "type": "boolean",
            "description": "Whether the current user is allowed to create reference files for this project."
          }
        }
      },
      "ReferenceFilePageDtoV1": {
        "type": "object",
        "properties": {
          "access": {
            "$ref": "#/components/schemas/ReferenceFileAccessDtoV1"
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReferenceFileReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ReferenceFileReferenceV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "filename": {
            "type": "string",
            "description": "Filename of the reference file. Null for note-only references."
          },
          "id": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Text note attached to the reference. Null if no note was provided."
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ReferenceFilesDtoV1": {
        "type": "object",
        "properties": {
          "referenceFiles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReferenceFileReferenceV1"
            }
          }
        }
      },
      "RegexpCheckRuleDtoV2": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Rule name or description"
          },
          "id": {
            "type": "string",
            "description": "Rule identifier"
          },
          "ignorable": {
            "type": "boolean",
            "description": "When true, linguists may mark a violation of this rule as ignored"
          },
          "instant": {
            "type": "boolean",
            "description": "When true, the rule is checked immediately during translation"
          },
          "sourceRegexp": {
            "type": "string",
            "description": "Regular expression matched against the source segment"
          },
          "targetRegexp": {
            "type": "string",
            "description": "Regular expression matched against the target segment"
          }
        }
      },
      "RegexpCheckRuleDtoV4": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Human-readable description of the rule"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the rule"
          },
          "ignorable": {
            "type": "boolean",
            "description": "When true, violations of this rule can be ignored by translators"
          },
          "instant": {
            "type": "boolean",
            "description": "When true, this rule runs as instant QA during translation"
          },
          "sourceRegexp": {
            "type": "string",
            "description": "Regular expression matched against the source segment"
          },
          "targetRegexp": {
            "type": "string",
            "description": "Regular expression matched against the target segment"
          }
        }
      },
      "RelativeTranslationLengthWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "limit": {
                "type": "string"
              }
            }
          }
        ]
      },
      "RemoteUploadedFileDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "File name",
            "readOnly": true
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "description": "File size in bytes",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "File type",
            "readOnly": true
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths",
            "readOnly": true
          },
          "url": {
            "type": "string",
            "description": "Remote URL to download the file from"
          }
        }
      },
      "RemoveTargetLangDtoV1": {
        "type": "object",
        "required": [
          "targetLangs"
        ],
        "properties": {
          "targetLangs": {
            "type": "array",
            "description": "List of target language codes to remove from the project (e.g. de, fr-CA)",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          }
        }
      },
      "RepeatedWordWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "positions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Position"
                }
              },
              "word": {
                "type": "string"
              }
            }
          }
        ]
      },
      "RepeatedWordsWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "repeatedWords": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "ReplayRequestDtoV1": {
        "type": "object",
        "properties": {
          "webhookCalls": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "Resource": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "file": {
            "type": "string",
            "format": "binary"
          },
          "filename": {
            "type": "string"
          },
          "inputStream": {
            "$ref": "#/components/schemas/InputStream"
          },
          "open": {
            "type": "boolean"
          },
          "readable": {
            "type": "boolean"
          },
          "uri": {
            "type": "string",
            "format": "uri"
          },
          "url": {
            "type": "string",
            "format": "url"
          }
        }
      },
      "ResxSettingsDtoV1": {
        "type": "object",
        "properties": {
          "htmlSubFilter": {
            "type": "boolean"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "ReviewProviderDtoV1": {
        "type": "object",
        "properties": {
          "organizationUid": {
            "type": "string",
            "description": "Unique identifier of the review provider's organization. A base62 alphanumeric string.",
            "readOnly": true
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the review provider user. A base62 alphanumeric string.",
            "readOnly": true
          }
        }
      },
      "SFTP": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "password",
              "port",
              "userName"
            ],
            "properties": {
              "host": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "port": {
                "type": "integer",
                "format": "int32"
              },
              "sshKey": {
                "type": "string"
              },
              "sshKeyName": {
                "type": "string"
              },
              "sshPassPhrase": {
                "type": "string"
              },
              "userName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "SITECORE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "password",
              "sitecoreDatabase",
              "userName"
            ],
            "properties": {
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "sitecoreAuthenticationType": {
                "type": "string",
                "enum": [
                  "STANDARD",
                  "OWIN"
                ]
              },
              "sitecoreDatabase": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              },
              "userName": {
                "type": "string"
              }
            }
          }
        ]
      },
      "STRING": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QACheckDtoV2"
          },
          {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "When true, this check is active"
              },
              "ignorable": {
                "type": "boolean",
                "description": "When true, linguists may mark violations of this check as ignored"
              },
              "instant": {
                "type": "boolean",
                "description": "When true, violations are highlighted immediately during translation"
              },
              "lock": {
                "type": "boolean",
                "description": "When true, linguists cannot change this check's enabled or ignorable settings"
              },
              "value": {
                "type": "string",
                "description": "Check-specific string value (e.g. comma-separated list of forbidden strings)"
              }
            }
          }
        ]
      },
      "SUBMITTER": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserCreateDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "automationWidgets": {
                "type": "array",
                "description": "If no automation widgets are assigned in request the default automation widgets will be assigned instead",
                "items": {
                  "$ref": "#/components/schemas/IdReference"
                }
              },
              "projectViewCreatedByOtherSubmitters": {
                "type": "boolean",
                "description": "View projects created by other Submitters. Default: false"
              }
            }
          }
        ]
      },
      "SUBMITTER_EDIT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractUserEditDtoV3"
          },
          {
            "type": "object",
            "required": [
              "automationWidgets"
            ],
            "properties": {
              "automationWidgets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IdReference"
                }
              },
              "projectViewCreatedByOtherSubmitters": {
                "type": "boolean",
                "description": "View projects created by other Submitters. Default: false"
              }
            }
          }
        ]
      },
      "SUBMITTER_RESPONSE": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UserDetailsDtoV3"
          },
          {
            "type": "object",
            "required": [
              "automationWidgets"
            ],
            "properties": {
              "automationWidgets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/JobWidgetReferenceV1"
                }
              },
              "projectViewCreatedByOtherSubmitters": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "SalesforceArticleFieldFilterDto": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "searchValue": {
            "type": "string"
          }
        }
      },
      "SalesforceConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "host",
              "salesforcePublishStrategyType"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "codeVerifier": {
                "type": "string"
              },
              "customLocaleMapping": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "host": {
                "type": "string",
                "description": "The Salesforce subdomain prefix, e.g. `mycompany` for `mycompany.my.salesforce.com`. Not a URL and not the TMS host: no scheme, no domain suffix."
              },
              "redirectUri": {
                "type": "string"
              },
              "salesforceArticleFieldFilter": {
                "$ref": "#/components/schemas/SalesforceArticleFieldFilterDto"
              },
              "salesforcePostTranslationFieldAdjuster": {
                "$ref": "#/components/schemas/SalesforcePostTranslationFieldAdjusterDto"
              },
              "salesforcePublishStrategyType": {
                "type": "string",
                "enum": [
                  "PUBLISH",
                  "DRAFT",
                  "SAME_AS_LATEST_TRANSLATION"
                ]
              },
              "salesforceSanitizeUrlSlug": {
                "type": "boolean"
              },
              "salesforceTargetLangsField": {
                "$ref": "#/components/schemas/SalesforceTargetLangsFieldDto"
              },
              "salesforceTranslationInProgressFieldAdjuster": {
                "$ref": "#/components/schemas/SalesforceTranslationInProgressFieldAdjusterDto"
              }
            }
          }
        ]
      },
      "SalesforceMT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "model"
            ],
            "properties": {
              "charactersPerRequest": {
                "type": "integer",
                "format": "int32",
                "minimum": 1
              },
              "charactersPerSegment": {
                "type": "integer",
                "format": "int32",
                "minimum": 1
              },
              "model": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "segmentsPerRequest": {
                "type": "integer",
                "format": "int32",
                "minimum": 1
              }
            }
          }
        ]
      },
      "SalesforceMTSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "refreshToken",
              "token"
            ],
            "properties": {
              "refreshToken": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "token": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SalesforcePostTranslationFieldAdjusterDto": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "updateValue": {
            "type": "string"
          }
        }
      },
      "SalesforceTargetLangsFieldDto": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          }
        }
      },
      "SalesforceTranslationInProgressFieldAdjusterDto": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string"
          },
          "updateValue": {
            "type": "string"
          }
        }
      },
      "ScoringResultDto": {
        "type": "object",
        "properties": {
          "issueCounts": {
            "$ref": "#/components/schemas/ScoringResultIssueCountsDto"
          },
          "jobPartUid": {
            "type": "string"
          },
          "overallFeedback": {
            "type": "string"
          },
          "score": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string",
            "enum": [
              "PASS",
              "FAIL"
            ]
          }
        }
      },
      "ScoringResultIssueCountsDto": {
        "type": "object",
        "properties": {
          "critical": {
            "type": "integer",
            "format": "int32"
          },
          "criticalRepeated": {
            "type": "integer",
            "format": "int32"
          },
          "major": {
            "type": "integer",
            "format": "int32"
          },
          "majorRepeated": {
            "type": "integer",
            "format": "int32"
          },
          "minor": {
            "type": "integer",
            "format": "int32"
          },
          "minorRepeated": {
            "type": "integer",
            "format": "int32"
          },
          "neutral": {
            "type": "integer",
            "format": "int32"
          },
          "neutralRepeated": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SdlBeGlobal": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "model"
            ],
            "properties": {
              "accountId": {
                "type": "string",
                "description": "\nUsed for extended features like automatic check of supported languages\n",
                "minLength": 0,
                "maxLength": 255
              },
              "apiVersion": {
                "type": "string",
                "description": "\nUsed to set API URL. 'DEFAULT': https://api.languageweaver.com, 'US': https://us.api.languageweaver.com.\nDefault value: DEFAULT'\n",
                "enum": [
                  "DEFAULT",
                  "US"
                ]
              },
              "dictionaries": {
                "type": "string",
                "description": "Comma separated list of dictionary IDs",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "model": {
                "type": "string",
                "description": "\nUnique identifier for the language pair combination sourceLanguageId-targetLanguageId-model, e.g.\nfor engjap_mycustommodel enter mycustommodel. Account has to have active subscription for given\nsourceLanguage-targetLanguage-model combination. Default: generic\n",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SdlBeGlobalSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "clientId": {
                "type": "string",
                "description": "\nUse either combination of Client ID + Client Secret for API login,\nor Username + Password for user login\n",
                "minLength": 0,
                "maxLength": 255
              },
              "password": {
                "type": "string",
                "description": "\n        Use either combination of Client ID + Client Secret for API login,\n        or Username + Password for user login\n",
                "minLength": 0,
                "maxLength": 255
              },
              "secret": {
                "type": "string",
                "description": "\nUse either combination of Client ID + Client Secret for API login,\nor Username + Password for user login\n",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "description": "\nUse either combination of Client ID + Client Secret for API login,\nor Username + Password for user login\n",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SdlLanguageCloud": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "domainCode": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "termBaseIds": {
                "type": "string",
                "description": "Comma-separated list",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SdlLanguageCloudSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SdlXlfSettingsDtoV1": {
        "type": "object",
        "properties": {
          "exportAttrsWhenConfirmedAndLocked": {
            "type": "string",
            "description": "Default: locked=true"
          },
          "exportAttrsWhenConfirmedAndNotLocked": {
            "type": "string"
          },
          "exportAttrsWhenNotConfirmedAndLocked": {
            "type": "string",
            "description": "Default: locked=true"
          },
          "exportAttrsWhenNotConfirmedAndNotLocked": {
            "type": "string"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importAsConfirmedRules": {
            "type": "string"
          },
          "importAsLockedRules": {
            "type": "string",
            "description": "Default: locked=true"
          },
          "saveConfirmedSegments": {
            "type": "boolean",
            "description": "Default: true"
          },
          "skipImportRules": {
            "type": "string",
            "description": "Default: translate=no"
          },
          "tagRegexp": {
            "type": "string",
            "description": "Regular expression matching substrings of a translatable XLIFF segment that should be converted to Phrase TMS tags (non-translatable), e.g. to protect placeholders like `{0}` or `%s`."
          }
        }
      },
      "SearchAssetsQueryDtoLanguageAssetsV1": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "type": "string",
            "minLength": 0,
            "maxLength": 1000
          }
        }
      },
      "SearchAssetsQueryResultDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "termBaseMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermBaseMatchDtoLanguageAssetsV1"
            }
          },
          "translationMemoryMatches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransMemoryMatchDtoLanguageAssetsV1"
            }
          }
        }
      },
      "SearchInTextResponse2DtoV2": {
        "type": "object",
        "properties": {
          "concept": {
            "$ref": "#/components/schemas/ConceptDtov2"
          },
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchInTextResponseMatch"
            }
          },
          "sourceTerm": {
            "$ref": "#/components/schemas/TermV2DtoV2"
          },
          "subTerm": {
            "type": "boolean"
          },
          "termBase": {
            "$ref": "#/components/schemas/TermBaseSearchResultDtoV2"
          },
          "translationTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermV2DtoV2"
            }
          }
        }
      },
      "SearchInTextResponseList2DtoV2": {
        "type": "object",
        "properties": {
          "searchResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchInTextResponse2DtoV2"
            }
          }
        }
      },
      "SearchInTextResponseMatch": {
        "type": "object",
        "properties": {
          "beginIndex": {
            "type": "integer",
            "format": "int32"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "SearchJobsDtoV1": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobPartExtendedDtoV1"
            }
          }
        }
      },
      "SearchJobsRequestDtoV1": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Max: 50 records",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 50,
            "minItems": 1
          }
        }
      },
      "SearchMetadataDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "searchedTermBaseIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "searchedTransMemoryIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "tbSearchStatus": {
            "type": "string",
            "enum": [
              "COMPLETED",
              "TIMED_OUT",
              "FAILED"
            ]
          },
          "tmSearchStatus": {
            "type": "string",
            "enum": [
              "COMPLETED",
              "TIMED_OUT",
              "FAILED"
            ]
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SearchRequestDtoV1": {
        "type": "object",
        "required": [
          "query",
          "sourceLang"
        ],
        "properties": {
          "nextSegment": {
            "type": "string"
          },
          "phraseQuery": {
            "type": "boolean",
            "description": "Return both wildcard and exact search results. Default: true"
          },
          "previousSegment": {
            "type": "string"
          },
          "query": {
            "type": "string"
          },
          "sourceLang": {
            "type": "string"
          },
          "tagMetadata": {
            "type": "array",
            "description": "Per-tag content used for tag-sensitive matching against the query segment's inline tags",
            "items": {
              "$ref": "#/components/schemas/TagMetadataDtoV1"
            }
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "trimQuery": {
            "type": "boolean",
            "description": "Remove leading and trailing whitespace from query. Default: true"
          }
        }
      },
      "SearchResponseListTbDtoV1": {
        "type": "object",
        "properties": {
          "searchResults": {
            "type": "array",
            "description": "List of search results",
            "items": {
              "$ref": "#/components/schemas/SearchResponseTbDtoV1"
            }
          }
        }
      },
      "SearchResponseListTmDtoV1": {
        "type": "object",
        "properties": {
          "searchResults": {
            "type": "array",
            "description": "Translation memory search results",
            "items": {
              "$ref": "#/components/schemas/SearchTMResponseDtoV1"
            }
          }
        }
      },
      "SearchResponseListTmDtoV3": {
        "type": "object",
        "properties": {
          "searchResults": {
            "type": "array",
            "description": "List of translation memory search results",
            "items": {
              "$ref": "#/components/schemas/SearchTMResponseDtoV3"
            }
          }
        }
      },
      "SearchResponseTbDtoV1": {
        "type": "object",
        "properties": {
          "conceptId": {
            "type": "string"
          },
          "sourceTerm": {
            "$ref": "#/components/schemas/TermDtoV1"
          },
          "termBase": {
            "$ref": "#/components/schemas/TermBaseDtoV1"
          },
          "translationTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermDtoV1"
            }
          }
        }
      },
      "SearchTMByJobRequestDtoV1": {
        "type": "object",
        "required": [
          "segment"
        ],
        "properties": {
          "contextKey": {
            "type": "string",
            "description": "Context key for context-based TM matching"
          },
          "maxSegments": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of full-match results to return",
            "minimum": 0,
            "maximum": 5
          },
          "maxSubSegments": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of subsegment-match results to return",
            "minimum": 0,
            "maximum": 5
          },
          "nextSegment": {
            "type": "string",
            "description": "Segment following the query segment, used for context-based matching"
          },
          "previousSegment": {
            "type": "string",
            "description": "Segment preceding the query segment, used for context-based matching"
          },
          "scoreThreshold": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "segment": {
            "type": "string"
          },
          "tagMetadata": {
            "type": "array",
            "description": "Tag metadata for tag-sensitive matching; each entry describes the content behind one inline tag in the query segment",
            "items": {
              "$ref": "#/components/schemas/TagMetadataDtoV1"
            }
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 15
          }
        }
      },
      "SearchTMByJobRequestDtoV3": {
        "type": "object",
        "required": [
          "query"
        ],
        "properties": {
          "maxResults": {
            "type": "integer",
            "format": "int32",
            "example": 15,
            "description": "Maximum number of results to return",
            "minimum": 1,
            "maximum": 100
          },
          "query": {
            "type": "string",
            "description": "Search query"
          },
          "reverse": {
            "type": "boolean",
            "example": false,
            "description": "When true, reverses the source/target language direction for the search"
          },
          "scoreThreshold": {
            "type": "number",
            "format": "double",
            "example": 0,
            "description": "Minimum match score threshold",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          }
        }
      },
      "SearchTMRequestDtoV1": {
        "type": "object",
        "required": [
          "segment",
          "targetLangs"
        ],
        "properties": {
          "contextKey": {
            "type": "string",
            "description": "Context key for context-based TM matching"
          },
          "maxSegments": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of full-match results to return",
            "minimum": 0,
            "maximum": 5
          },
          "maxSubSegments": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of subsegment-match results to return",
            "minimum": 0,
            "maximum": 5
          },
          "nextSegment": {
            "type": "string",
            "description": "Segment following the query segment, used for context-based matching"
          },
          "previousSegment": {
            "type": "string",
            "description": "Segment preceding the query segment, used for context-based matching"
          },
          "scoreThreshold": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 1.01,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "segment": {
            "type": "string"
          },
          "tagMetadata": {
            "type": "array",
            "description": "Tag metadata for tag-sensitive matching; each entry describes the content behind one inline tag in the query segment",
            "items": {
              "$ref": "#/components/schemas/TagMetadataDtoV1"
            }
          },
          "targetLangs": {
            "type": "array",
            "description": "Target languages to search against",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 15
          }
        }
      },
      "SearchTMResponseDtoSearchTMClientDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal client ID"
          },
          "name": {
            "type": "string",
            "description": "Client name"
          }
        }
      },
      "SearchTMResponseDtoSearchTMClientDtoV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Numeric identifier of the client"
          },
          "name": {
            "type": "string",
            "description": "Name of the client"
          }
        }
      },
      "SearchTMResponseDtoSearchTMClientDtoV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Client ID"
          },
          "name": {
            "type": "string",
            "description": "Client name"
          }
        }
      },
      "SearchTMResponseDtoSearchTMDomainDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal domain ID"
          },
          "name": {
            "type": "string",
            "description": "Domain name"
          }
        }
      },
      "SearchTMResponseDtoSearchTMDomainDtoV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Numeric identifier of the domain"
          },
          "name": {
            "type": "string",
            "description": "Name of the domain"
          }
        }
      },
      "SearchTMResponseDtoSearchTMDomainDtoV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Domain ID"
          },
          "name": {
            "type": "string",
            "description": "Domain name"
          }
        }
      },
      "SearchTMResponseDtoSearchTMProjectDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal project ID"
          },
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "uid": {
            "type": "string",
            "description": "Project UID"
          }
        }
      },
      "SearchTMResponseDtoSearchTMProjectDtoV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Numeric identifier of the project"
          },
          "name": {
            "type": "string",
            "description": "Name of the project"
          },
          "uid": {
            "type": "string",
            "description": "Unique string identifier of the project"
          }
        }
      },
      "SearchTMResponseDtoSearchTMProjectDtoV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Project ID"
          },
          "name": {
            "type": "string",
            "description": "Project name"
          },
          "uid": {
            "type": "string",
            "description": "Project UID"
          }
        }
      },
      "SearchTMResponseDtoSearchTMSegmentDtoV1": {
        "type": "object",
        "properties": {
          "client": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMClientDtoV1"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp of creation (milliseconds since epoch)"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "domain": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMDomainDtoV1"
          },
          "filename": {
            "type": "string",
            "description": "Name of the source file the segment originates from"
          },
          "id": {
            "type": "string",
            "description": "Segment identifier"
          },
          "key": {
            "type": "string",
            "description": "Context key used for context-based TM matching"
          },
          "lang": {
            "type": "string",
            "description": "Language code of the segment"
          },
          "modifiedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Timestamp of the last modification (milliseconds since epoch)"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "nextSegment": {
            "type": "string",
            "description": "Following segment used for context matching"
          },
          "previousSegment": {
            "type": "string",
            "description": "Preceding segment used for context matching"
          },
          "project": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMProjectDtoV1"
          },
          "rtl": {
            "type": "boolean",
            "description": "When true, the language is right-to-left"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSubDomainDtoV1"
          },
          "tagMetadata": {
            "type": "array",
            "description": "Per-tag content behind the segment's inline tags (e.g. locked/non-translatable sub-text, original embedded markup) rather than plain text — see the TagMetadata model for field details",
            "items": {
              "$ref": "#/components/schemas/TagMetadata"
            }
          },
          "text": {
            "type": "string",
            "description": "Segment text content"
          }
        }
      },
      "SearchTMResponseDtoSearchTMSegmentDtoV2": {
        "type": "object",
        "properties": {
          "client": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMClientDtoV2"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Creation timestamp in milliseconds since epoch"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "domain": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMDomainDtoV2"
          },
          "filename": {
            "type": "string",
            "description": "Name of the file the segment belongs to"
          },
          "id": {
            "type": "string",
            "description": "Segment identifier"
          },
          "key": {
            "type": "string",
            "description": "Segment key"
          },
          "lang": {
            "type": "string",
            "description": "Language code of the segment"
          },
          "modifiedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification timestamp in milliseconds since epoch"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "nextSegment": {
            "type": "string",
            "description": "Text of the following segment"
          },
          "previousSegment": {
            "type": "string",
            "description": "Text of the preceding segment"
          },
          "project": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMProjectDtoV2"
          },
          "rtl": {
            "type": "boolean",
            "description": "True if the language is right-to-left"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSubDomainDtoV2"
          },
          "tagMetadata": {
            "type": "array",
            "description": "Content behind the segment's inline tags — locked sub-text or original embedded markup — rather than plain text; see the TagMetadata model for field details",
            "items": {
              "$ref": "#/components/schemas/TagMetadata"
            }
          },
          "text": {
            "type": "string",
            "description": "Segment text content"
          }
        }
      },
      "SearchTMResponseDtoSearchTMSegmentDtoV3": {
        "type": "object",
        "properties": {
          "client": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMClientDtoV3"
          },
          "createdAt": {
            "type": "integer",
            "format": "int64",
            "description": "Creation timestamp (epoch milliseconds)"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "domain": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMDomainDtoV3"
          },
          "filename": {
            "type": "string",
            "description": "Name of the file the segment belongs to"
          },
          "id": {
            "type": "string",
            "description": "Segment identifier"
          },
          "key": {
            "type": "string",
            "description": "Segment key"
          },
          "lang": {
            "type": "string",
            "description": "Language code of the segment"
          },
          "modifiedAt": {
            "type": "integer",
            "format": "int64",
            "description": "Last modification timestamp (epoch milliseconds)"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "nextSegment": {
            "type": "string",
            "description": "Text of the following segment"
          },
          "previousSegment": {
            "type": "string",
            "description": "Text of the preceding segment"
          },
          "project": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMProjectDtoV3"
          },
          "rtl": {
            "type": "boolean",
            "description": "Whether the language is right-to-left"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSubDomainDtoV3"
          },
          "tagMetadata": {
            "type": "array",
            "description": "Embedded markup or non-translatable sub-text behind the segment's inline tags, rather than plain text; see the TagMetadata model for field details",
            "items": {
              "$ref": "#/components/schemas/TagMetadata"
            }
          },
          "targetNote": {
            "type": "string",
            "description": "Note attached to the target segment"
          },
          "text": {
            "type": "string",
            "description": "Segment text"
          }
        }
      },
      "SearchTMResponseDtoSearchTMSubDomainDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal subdomain ID"
          },
          "name": {
            "type": "string",
            "description": "Subdomain name"
          }
        }
      },
      "SearchTMResponseDtoSearchTMSubDomainDtoV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Numeric identifier of the sub-domain"
          },
          "name": {
            "type": "string",
            "description": "Name of the sub-domain"
          }
        }
      },
      "SearchTMResponseDtoSearchTMSubDomainDtoV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Sub-domain ID"
          },
          "name": {
            "type": "string",
            "description": "Sub-domain name"
          }
        }
      },
      "SearchTMResponseDtoSearchTMTransMemoryDtoV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal translation memory ID"
          },
          "name": {
            "type": "string",
            "description": "Translation memory name"
          },
          "reverse": {
            "type": "boolean",
            "description": "When true, this TM is used in reverse (target-to-source) mode"
          },
          "uid": {
            "type": "string",
            "description": "Translation memory UID"
          }
        }
      },
      "SearchTMResponseDtoSearchTMTransMemoryDtoV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal numeric identifier of the translation memory (as string)"
          },
          "name": {
            "type": "string",
            "description": "Name of the translation memory"
          },
          "reverse": {
            "type": "boolean",
            "description": "True if the search used reversed source and target languages"
          },
          "uid": {
            "type": "string",
            "description": "Unique string identifier of the translation memory"
          }
        }
      },
      "SearchTMResponseDtoSearchTMTransMemoryDtoV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Translation memory ID"
          },
          "name": {
            "type": "string",
            "description": "Translation memory name"
          },
          "reverse": {
            "type": "boolean",
            "description": "Whether the translation memory is used in reverse (target→source)"
          },
          "uid": {
            "type": "string",
            "description": "Translation memory UID"
          }
        }
      },
      "SearchTMResponseDtoV1": {
        "type": "object",
        "properties": {
          "grossScore": {
            "type": "number",
            "format": "double",
            "description": "Raw match score before penalty adjustments"
          },
          "score": {
            "type": "number",
            "format": "double",
            "description": "Final match score after penalty adjustments"
          },
          "segmentId": {
            "type": "string",
            "description": "Unique identifier of the matched TM segment"
          },
          "source": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSegmentDtoV1"
          },
          "subSegment": {
            "type": "boolean",
            "description": "When true, the match is a subsegment (source is a substring of the query)"
          },
          "transMemory": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMTransMemoryDtoV1"
          },
          "translations": {
            "type": "array",
            "description": "Target translation segments for the TM match",
            "items": {
              "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSegmentDtoV1"
            }
          }
        }
      },
      "SearchTMResponseDtoV2": {
        "type": "object",
        "properties": {
          "grossScore": {
            "type": "number",
            "format": "double",
            "description": "Raw match score before penalties, in the range 0.0-1.01"
          },
          "score": {
            "type": "number",
            "format": "double",
            "description": "Match score after penalties, in the range 0.0-1.01"
          },
          "segmentId": {
            "type": "string",
            "description": "Unique identifier of the matched segment"
          },
          "source": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSegmentDtoV2"
          },
          "subSegment": {
            "type": "boolean",
            "description": "True if this is a sub-segment match"
          },
          "transMemory": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMTransMemoryDtoV2"
          },
          "translations": {
            "type": "array",
            "description": "List of translation segment data",
            "items": {
              "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSegmentDtoV2"
            }
          }
        }
      },
      "SearchTMResponseDtoV3": {
        "type": "object",
        "properties": {
          "grossScore": {
            "type": "number",
            "format": "double",
            "description": "Raw match score before penalties (0.0–1.0)"
          },
          "score": {
            "type": "number",
            "format": "double",
            "description": "Penalized match score (0.0–1.0)"
          },
          "segmentId": {
            "type": "string",
            "description": "Segment identifier"
          },
          "source": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSegmentDtoV3"
          },
          "subSegment": {
            "type": "boolean",
            "description": "Whether this is a sub-segment match"
          },
          "transMemory": {
            "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMTransMemoryDtoV3"
          },
          "translations": {
            "type": "array",
            "description": "Target segment translations",
            "items": {
              "$ref": "#/components/schemas/SearchTMResponseDtoSearchTMSegmentDtoV3"
            }
          }
        }
      },
      "SearchTbByJobRequestDtoV2": {
        "type": "object",
        "required": [
          "query"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "description": "Default: 15"
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "description": "Default: 0"
          },
          "query": {
            "type": "string"
          },
          "reverse": {
            "type": "boolean",
            "description": "Default: false"
          },
          "withoutTargetSkip": {
            "type": "boolean",
            "description": "If response should include records with no term in the target locales. Default: false"
          }
        }
      },
      "SearchTbInTextByJobRequestDtoV2": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "reverse": {
            "type": "boolean",
            "description": "Default: false"
          },
          "text": {
            "type": "string"
          },
          "zeroLengthSeparator": {
            "type": "string"
          }
        }
      },
      "SearchTbResponseDtoV2": {
        "type": "object",
        "properties": {
          "concept": {
            "$ref": "#/components/schemas/ConceptDtov2"
          },
          "sourceTerm": {
            "$ref": "#/components/schemas/TermV2DtoV2"
          },
          "termBase": {
            "$ref": "#/components/schemas/TermBaseSearchResultDtoV2"
          },
          "translationTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermV2DtoV2"
            }
          }
        }
      },
      "SearchTbResponseListDtoV2": {
        "type": "object",
        "properties": {
          "searchResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchTbResponseDtoV2"
            }
          }
        }
      },
      "SearchTmContentFilterDtoV1": {
        "type": "object",
        "properties": {
          "clients": {
            "type": "array",
            "description": "Clients",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "clientsOperator": {
            "type": "string",
            "description": "Matching operator for `clients`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "IS_ANY_OF",
              "IS_NONE_OF"
            ]
          },
          "createdByUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "createdByUsersOperator": {
            "type": "string",
            "description": "Matching operator for `createdByUsers`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "IS_ANY_OF",
              "IS_NONE_OF"
            ]
          },
          "createdFrom": {
            "type": "string",
            "format": "date-time",
            "description": "Use ISO8601 date and time format (e.g. `2025-11-03T14:42:59Z`). Leave empty if searching for \"is before\", provide both from/to if searching \"is\" or \"is within\""
          },
          "createdTo": {
            "type": "string",
            "format": "date-time",
            "description": "Use ISO8601 date and time format (e.g. `2025-11-03T14:42:59Z`). Leave empty if searching for \"is after\", provide both from/to if searching \"is\" or \"is within\""
          },
          "domains": {
            "type": "array",
            "description": "Domains",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "domainsOperator": {
            "type": "string",
            "description": "Matching operator for `domains`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "IS_ANY_OF",
              "IS_NONE_OF"
            ]
          },
          "filename": {
            "type": "string",
            "description": "Original file"
          },
          "filenameOperator": {
            "type": "string",
            "description": "Matching operator for `filename`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "CONTAINS",
              "DOES_NOT_CONTAIN"
            ]
          },
          "keyName": {
            "type": "string",
            "description": "Context key name (AKA Segment key or Segment ID)"
          },
          "keyNameOperator": {
            "type": "string",
            "description": "Matching operator for `keyName`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "CONTAINS",
              "DOES_NOT_CONTAIN"
            ]
          },
          "lastModifiedFrom": {
            "type": "string",
            "format": "date-time",
            "description": "Use ISO8601 date and time format (e.g. `2025-11-03T14:42:59Z`). Leave empty if searching for \"is before\", provide both from/to if searching \"is\" or \"is within\""
          },
          "lastModifiedTo": {
            "type": "string",
            "format": "date-time",
            "description": "Use ISO8601 date and time format (e.g. `2025-11-03T14:42:59Z`). Leave empty if searching for \"is after\", provide both from/to if searching \"is\" or \"is within\""
          },
          "modifiedByUsers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "modifiedByUsersOperator": {
            "type": "string",
            "description": "Matching operator for `modifiedByUsers`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "IS_ANY_OF",
              "IS_NONE_OF"
            ]
          },
          "projects": {
            "type": "array",
            "description": "Original project",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "projectsOperator": {
            "type": "string",
            "description": "Matching operator for `projects`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "IS_ANY_OF",
              "IS_NONE_OF"
            ]
          },
          "subdomains": {
            "type": "array",
            "description": "Subdomains",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "subdomainsOperator": {
            "type": "string",
            "description": "Matching operator for `subdomains`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "IS_ANY_OF",
              "IS_NONE_OF"
            ]
          }
        }
      },
      "SearchTmContentRequestDtoV1": {
        "type": "object",
        "properties": {
          "filters": {
            "type": "array",
            "description": "Filter for related metadata (e.g. project, client, ...). It's possible to provide multiple filter criteria of same type (AND logic applied)",
            "items": {
              "$ref": "#/components/schemas/SearchTmContentFilterDtoV1"
            }
          },
          "sourceMatchCase": {
            "type": "boolean",
            "description": "If `true`, `sourceQuery` will be considered case-sensitive"
          },
          "sourceOperator": {
            "type": "string",
            "description": "Matching operator for `sourceQuery`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "CONTAINS",
              "DOES_NOT_CONTAIN"
            ]
          },
          "sourceQuery": {
            "type": "string",
            "description": "Query string for source part of segment. Provide either `sourceQuery` or `targetQuery` (not both)"
          },
          "sourceUseRegex": {
            "type": "boolean",
            "description": "If `true`, `sourceQuery` will be considered to be regular expression"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target languages/locales of the given TM to search in. Example: `en_us`",
            "items": {
              "type": "string"
            }
          },
          "targetMatchCase": {
            "type": "boolean",
            "description": "If `true`, `targetQuery` will be considered case-sensitive"
          },
          "targetOperator": {
            "type": "string",
            "description": "Matching operator for `targetQuery`. Default: IS",
            "enum": [
              "IS",
              "IS_NOT",
              "CONTAINS",
              "DOES_NOT_CONTAIN"
            ]
          },
          "targetQuery": {
            "type": "string",
            "description": "Query string for target part of segment. Provide either `sourceQuery` or `targetQuery` (not both)"
          },
          "targetUseRegex": {
            "type": "boolean",
            "description": "If `true`, `targetQuery` will be considered to be regular expression"
          },
          "tuId": {
            "type": "string",
            "description": "ID of the translation unit"
          }
        }
      },
      "SegRuleReferenceV1": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "primary": {
            "type": "boolean"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "SegmentDtoV1": {
        "type": "object",
        "required": [
          "sourceSegment",
          "targetLang",
          "targetSegment"
        ],
        "properties": {
          "nextSourceSegment": {
            "type": "string",
            "description": "Context: following source segment"
          },
          "previousSourceSegment": {
            "type": "string",
            "description": "Context: preceding source segment"
          },
          "sourceSegment": {
            "type": "string",
            "description": "Source segment text"
          },
          "sourceTagMetadata": {
            "type": "array",
            "description": "Tag metadata for the source segment",
            "items": {
              "$ref": "#/components/schemas/TagMetadataDtoV1"
            }
          },
          "targetLang": {
            "type": "string",
            "description": "Target language locale"
          },
          "targetSegment": {
            "type": "string",
            "description": "Target segment text (translation)"
          },
          "targetTagMetadata": {
            "type": "array",
            "description": "Tag metadata for the target segment",
            "items": {
              "$ref": "#/components/schemas/TagMetadataDtoV1"
            }
          }
        },
        "description": "A single TM segment (source/target pair with optional context) for insertion into a TM"
      },
      "SegmentListDto": {
        "type": "object",
        "properties": {
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobSegmentDto"
            }
          }
        }
      },
      "SegmentReferenceV1": {
        "type": "object",
        "properties": {
          "uid": {
            "type": "string"
          }
        }
      },
      "SegmentWarningDtoV3": {
        "type": "object",
        "required": [
          "type"
        ],
        "discriminator": {
          "propertyName": "type"
        },
        "properties": {
          "id": {
            "type": "string"
          },
          "ignored": {
            "type": "boolean"
          },
          "repetitionGroupId": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "description": "Response differs based on the warning type."
          }
        }
      },
      "SegmentWarningEntryDto": {
        "type": "object",
        "required": [
          "results",
          "segmentId"
        ],
        "properties": {
          "results": {
            "type": "array",
            "description": "Warning results for this segment.",
            "items": {
              "$ref": "#/components/schemas/SegmentWarningResultDto"
            }
          },
          "segmentId": {
            "type": "string",
            "description": "ID of the segment to attach warnings to."
          }
        }
      },
      "SegmentWarningResultDto": {
        "type": "object",
        "required": [
          "message",
          "type"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Human-readable warning message. Maximum 1000 characters.",
            "minLength": 0,
            "maxLength": 1000
          },
          "qeId": {
            "type": "string",
            "description": "Identifier of the QE check that raised this warning. Null when the caller has no check identifier."
          },
          "type": {
            "type": "string",
            "description": "Warning type code assigned by the quality evaluator. Can store human-readable name of the warning. Maximum 255 characters.",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "SegmentationRuleDtoV1": {
        "type": "object",
        "required": [
          "filename",
          "name"
        ],
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/ProtectedUserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time when the segmentation rule was created",
            "readOnly": true
          },
          "filename": {
            "type": "string",
            "description": "Name of the uploaded segmentation rule file",
            "minLength": 0,
            "maxLength": 255
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string",
            "readOnly": true
          },
          "language": {
            "type": "string",
            "description": "Language code derived from the locale"
          },
          "locale": {
            "type": "string",
            "description": "Locale code of the segmentation rule; normalized when read"
          },
          "name": {
            "type": "string",
            "description": "Name of the segmentation rule",
            "minLength": 0,
            "maxLength": 255
          },
          "primary": {
            "type": "boolean",
            "description": "When true, this rule is the primary segmentation rule for its locale in the organization"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths",
            "readOnly": true
          }
        },
        "description": "segmentation rule object"
      },
      "SegmentationRulePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SegmentationRuleDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SegmentationRulesOwnersDtoV1": {
        "type": "object",
        "properties": {
          "owners": {
            "type": "array",
            "description": "Users who own at least one segmentation rule in the organization",
            "items": {
              "$ref": "#/components/schemas/UserReferenceV1"
            }
          }
        },
        "description": "Owners of segmentation rules"
      },
      "SegmentsCountsDtoV1": {
        "type": "object",
        "properties": {
          "addedSegments": {
            "type": "integer",
            "format": "int64"
          },
          "addedWords": {
            "type": "integer",
            "format": "int64"
          },
          "allConfirmed": {
            "type": "boolean"
          },
          "charsCount": {
            "type": "integer",
            "format": "int64"
          },
          "completedCharsCount": {
            "type": "integer",
            "format": "int64"
          },
          "completedSegmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Count of segments that are completed, defined as confirmed + locked - confirmed and locked.\nSegments with pre-translated but unconfirmed target content are excluded from this count; see\ntranslatedSegmentsCount for details."
          },
          "completedWordsCount": {
            "type": "integer",
            "format": "int64"
          },
          "confirmedCharsCount": {
            "type": "integer",
            "format": "int64"
          },
          "confirmedLockedCharsCount": {
            "type": "integer",
            "format": "int64"
          },
          "confirmedLockedWordsCount": {
            "type": "integer",
            "format": "int64"
          },
          "confirmedWordsCount": {
            "type": "integer",
            "format": "int64"
          },
          "lockedCharsCount": {
            "type": "integer",
            "format": "int64"
          },
          "lockedSegmentsCount": {
            "type": "integer",
            "format": "int64"
          },
          "lockedWordsCount": {
            "type": "integer",
            "format": "int64"
          },
          "machineTranslationPostEditedSegmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Count of segments where the machine translation (MT) output was post-edited. Stays 0 for a\nsegment whose target still equals the stored MT output, even after that segment is confirmed."
          },
          "machineTranslationRelevantSegmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Count of segments that have both a non-empty target and stored machine translation (MT)\noutput. This is the field to check to confirm that pre-translation produced content, independent of whether that\ncontent has since been confirmed."
          },
          "nonEmptySegmentGroupsCount": {
            "type": "integer",
            "format": "int64"
          },
          "qualityAssurance": {
            "$ref": "#/components/schemas/QualityAssuranceDtoV1"
          },
          "qualityAssuranceResolved": {
            "type": "boolean"
          },
          "segmentGroupsCount": {
            "type": "integer",
            "format": "int64"
          },
          "segmentsCount": {
            "type": "integer",
            "format": "int64"
          },
          "translatedLockedSegmentsCount": {
            "type": "integer",
            "format": "int64"
          },
          "translatedSegmentsCount": {
            "type": "integer",
            "format": "int64",
            "description": "Count of segments confirmed at this workflow step. This is NOT the count of segments that\nhave target content - a segment with pre-translated but unconfirmed target content is excluded from this count.\nTo check whether pre-translation produced content, use machineTranslationRelevantSegmentsCount instead."
          },
          "wordsCount": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "SegmentsCountsResponseDtoPreviousWorkflowDtoV1": {
        "type": "object",
        "properties": {
          "completed": {
            "type": "boolean"
          },
          "counts": {
            "$ref": "#/components/schemas/SegmentsCountsDtoV1"
          }
        }
      },
      "SegmentsCountsResponseDtoV1": {
        "type": "object",
        "properties": {
          "counts": {
            "$ref": "#/components/schemas/SegmentsCountsDtoV1"
          },
          "jobPartUid": {
            "type": "string"
          },
          "previousWorkflow": {
            "$ref": "#/components/schemas/SegmentsCountsResponseDtoPreviousWorkflowDtoV1"
          }
        }
      },
      "SegmentsCountsResponseListDtoV1": {
        "type": "object",
        "properties": {
          "segmentsCountsResults": {
            "type": "array",
            "description": "Per-job-part segment count results",
            "items": {
              "$ref": "#/components/schemas/SegmentsCountsResponseDtoV1"
            }
          }
        }
      },
      "ServiceDtoV1": {
        "type": "object",
        "properties": {
          "billingUnit": {
            "type": "string",
            "description": "Billing unit for the service",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the service was created"
          },
          "generationMode": {
            "type": "string",
            "description": "Controls when quotes and analyses are generated",
            "enum": [
              "ANALYSIS_AND_QUOTE",
              "ANALYSIS",
              "NONE"
            ]
          },
          "name": {
            "type": "string",
            "description": "Internal name of the service"
          },
          "publicName": {
            "type": "string",
            "description": "Public-facing name of the service"
          },
          "sourceLangs": {
            "type": "array",
            "description": "BCP 47 source language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "targetLangs": {
            "type": "array",
            "description": "BCP 47 target language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "description": "Service type",
            "enum": [
              "ProfessionalTranslation"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier of the service"
          }
        },
        "description": "Service details"
      },
      "ServiceListEntryDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "publicName": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "ProfessionalTranslation"
            ]
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "ServiceListEntryPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceListEntryDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SetContextPTTransMemoriesV2DtoV2": {
        "type": "object",
        "required": [
          "transMemories"
        ],
        "properties": {
          "orderEnabled": {
            "type": "boolean",
            "description": "Default: false"
          },
          "targetLang": {
            "type": "string",
            "description": "Set translation memory only for the specific project target language"
          },
          "transMemories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SetProjectTemplateTransMemoryV2DtoV2"
            }
          },
          "workflowStep": {
            "$ref": "#/components/schemas/UidReference"
          }
        }
      },
      "SetContextTransMemoriesDtoV3DtoV3": {
        "type": "object",
        "required": [
          "transMemories"
        ],
        "properties": {
          "orderEnabled": {
            "type": "boolean",
            "description": "When true, TM prioritization order is active for this context"
          },
          "targetLang": {
            "type": "string",
            "description": "Set translation memory only for the specific project target language"
          },
          "transMemories": {
            "type": "array",
            "description": "Translation memory assignments for this context",
            "items": {
              "$ref": "#/components/schemas/SetProjectTransMemoryV3DtoV3"
            }
          },
          "workflowStep": {
            "$ref": "#/components/schemas/UidReference"
          }
        }
      },
      "SetProjectStatusDtoV1": {
        "type": "object",
        "required": [
          "status"
        ],
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "NEW",
              "ASSIGNED",
              "COMPLETED",
              "ACCEPTED_BY_VENDOR",
              "DECLINED_BY_VENDOR",
              "COMPLETED_BY_VENDOR",
              "CANCELLED"
            ]
          }
        }
      },
      "SetProjectTemplateTermBaseDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "qualityAssuranceTermBases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          },
          "readTermBases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          },
          "targetLang": {
            "type": "string"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          },
          "writeTermBase": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "SetProjectTemplateTransMemoriesV2DtoV2": {
        "type": "object",
        "required": [
          "dataPerContext"
        ],
        "properties": {
          "dataPerContext": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SetContextPTTransMemoriesV2DtoV2"
            }
          }
        }
      },
      "SetProjectTemplateTransMemoryV2DtoV2": {
        "type": "object",
        "required": [
          "transMemory"
        ],
        "properties": {
          "applyPenaltyTo101Only": {
            "type": "boolean",
            "description": "Can be set only for penalty == 1<br/>Default: false"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "penalty": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 100,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "readMode": {
            "type": "boolean",
            "description": "Default: false"
          },
          "transMemory": {
            "$ref": "#/components/schemas/UidReference"
          },
          "writeMode": {
            "type": "boolean",
            "description": "Can be set only for Translation Memory with read == true.<br/>\n        Max 2 write TMs allowed per project.<br/>\n        Default: false"
          }
        }
      },
      "SetProjectTransMemoriesV3DtoV3": {
        "type": "object",
        "required": [
          "dataPerContext"
        ],
        "properties": {
          "dataPerContext": {
            "type": "array",
            "description": "Translation memory assignments per language/workflow step context",
            "items": {
              "$ref": "#/components/schemas/SetContextTransMemoriesDtoV3DtoV3"
            }
          }
        }
      },
      "SetProjectTransMemoryV3DtoV3": {
        "type": "object",
        "required": [
          "transMemory"
        ],
        "properties": {
          "applyPenaltyTo101Only": {
            "type": "boolean",
            "description": "When true, penalty applies only to 101% matches; requires penalty == 1"
          },
          "order": {
            "type": "integer",
            "format": "int32",
            "description": "Priority order when TM prioritization is enabled"
          },
          "penalty": {
            "type": "number",
            "format": "double",
            "description": "Penalty applied to matches from this translation memory (0.0-100.0)",
            "minimum": 0,
            "maximum": 100,
            "exclusiveMinimum": false,
            "exclusiveMaximum": false
          },
          "readMode": {
            "type": "boolean",
            "description": "When true, the translation memory is used for reading (pre-translation and suggestions)"
          },
          "transMemory": {
            "$ref": "#/components/schemas/UidReference"
          },
          "writeMode": {
            "type": "boolean",
            "description": "When true, confirmed segments are written to this translation memory. Requires readMode == true. Max 2 write TMs allowed per project."
          }
        }
      },
      "SetTermBaseDtoV1": {
        "type": "object",
        "properties": {
          "qualityAssuranceTermBases": {
            "type": "array",
            "description": "Term bases to assign for quality assurance. Must also be present in readTermBases.",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          },
          "readTermBases": {
            "type": "array",
            "description": "Term bases for reading. Must include any writeTermBase or qualityAssuranceTermBases entries.",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            }
          },
          "targetLang": {
            "type": "string",
            "description": "Target language locale code. If omitted, applies to all project target languages."
          },
          "writeTermBase": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "SeverityDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Code of the severity category"
          },
          "value": {
            "type": "number",
            "format": "double",
            "description": "Allowed values 0.0-100,000.0"
          }
        }
      },
      "SharedCollectionDtoV1": {
        "type": "object",
        "properties": {
          "dashboards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelDto"
            }
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelDto"
            }
          }
        }
      },
      "SharepointConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "host"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string",
                "description": "Hostname of the SharePoint site, e.g. `mysite.sharepoint.com`. Unlike ZENDESK/SALESFORCE, this is a real hostname, not a subdomain prefix; scheme is controlled separately via `forcedHttps`."
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "SiteDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "source": {
            "type": "boolean"
          },
          "title": {
            "type": "string"
          }
        }
      },
      "SitesStructureDto": {
        "type": "object",
        "properties": {
          "websites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebsiteDto"
            }
          }
        }
      },
      "Skrivanek": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "SkrivanekSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "Sort": {
        "type": "object",
        "properties": {
          "orders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SortOrder"
            }
          }
        }
      },
      "SortOrder": {
        "type": "object",
        "properties": {
          "direction": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ]
          },
          "property": {
            "type": "string"
          }
        }
      },
      "SourceTargetRegexpWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "description": {
                "type": "string"
              }
            }
          }
        ]
      },
      "SpellCheckRequestDtoSpellCheckV1": {
        "type": "object",
        "required": [
          "lang",
          "texts"
        ],
        "properties": {
          "lang": {
            "type": "string",
            "description": "Language code for spell check"
          },
          "referenceTexts": {
            "type": "array",
            "description": "Reference texts used for context",
            "items": {
              "type": "string"
            }
          },
          "texts": {
            "type": "array",
            "description": "List of texts to spell check",
            "items": {
              "type": "string"
            }
          },
          "zeroLengthSeparator": {
            "type": "string",
            "description": "Separator marking zero-length segments within texts"
          }
        }
      },
      "SpellCheckResponseDtoSpellCheckV1": {
        "type": "object",
        "properties": {
          "spellCheckResults": {
            "type": "array",
            "description": "Spell check results for each submitted text",
            "items": {
              "$ref": "#/components/schemas/CheckResponse"
            }
          }
        }
      },
      "SpellCheckWarningDtoMisspelledWordDtoV3": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "word": {
            "type": "string"
          }
        }
      },
      "SpellCheckWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "misspelledWords": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SpellCheckWarningDtoMisspelledWordDtoV3"
                }
              }
            }
          }
        ]
      },
      "SplitJobActionDtoV1": {
        "type": "object",
        "properties": {
          "byDocumentPart": {
            "type": "boolean",
            "description": "Can be used only for PowerPoint files"
          },
          "partCount": {
            "type": "integer",
            "format": "int32",
            "description": "Split into this number of parts"
          },
          "partSize": {
            "type": "integer",
            "format": "int32",
            "description": "Split into parts of this many segments each"
          },
          "segmentOrdinals": {
            "type": "array",
            "description": "Split after the segments with these ordinals (1-based)",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "splitAllWorkflowSteps": {
            "type": "boolean",
            "description": "Split in all workflow steps (default: false)"
          },
          "wordCount": {
            "type": "integer",
            "format": "int32",
            "description": "Split into parts of approximately this many words each"
          }
        }
      },
      "StatusDtoV1": {
        "type": "object",
        "properties": {
          "by": {
            "$ref": "#/components/schemas/MentionableUserDtoV1"
          },
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "Date the status was set"
          },
          "name": {
            "type": "string",
            "description": "Status name",
            "enum": [
              "resolved",
              "unresolved"
            ]
          }
        }
      },
      "StoreDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "views": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ViewDto"
            }
          }
        }
      },
      "StoreSegmentWarningsRequestDtoV1": {
        "type": "object",
        "required": [
          "jobPartUid",
          "segments"
        ],
        "properties": {
          "evaluationId": {
            "type": "string",
            "description": "Evaluation run identifier; omit or send null when the caller has no run identifier."
          },
          "jobPartUid": {
            "type": "string",
            "description": "UID of the job part to store warnings for"
          },
          "qualityProfileUid": {
            "type": "string",
            "description": "Quality profile UID; omit or send null when no profile applies."
          },
          "segments": {
            "type": "array",
            "description": "Segment-level evaluation results. 1–500 entries.",
            "items": {
              "$ref": "#/components/schemas/SegmentWarningEntryDto"
            },
            "maxItems": 500,
            "minItems": 1
          }
        }
      },
      "StyleGuideAssociationDtoInternalV1": {
        "type": "object",
        "properties": {
          "associationId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "disabled": {
            "type": "boolean",
            "description": "True when this association can't be edited here because it comes from a Content Group or is shared from another organization. The style guide still applies."
          },
          "language": {
            "type": "string"
          },
          "lastModifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "styleGuide": {
            "$ref": "#/components/schemas/StyleGuideInfoDtoInternalV1"
          }
        }
      },
      "StyleGuideAssociationListDtoInternalV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StyleGuideAssociationDtoInternalV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "totalElements": {
            "type": "integer",
            "format": "int64"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "StyleGuideInfoDtoInternalV1": {
        "type": "object",
        "properties": {
          "contentProfileId": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "language": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "versionNumber": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "StyleWeightsDto": {
        "type": "object",
        "properties": {
          "awkward": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "companyStyle": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "inconsistentStyle": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "style": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "thirdPartyStyle": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "unidiomatic": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "SubDomainDtoV1": {
        "type": "object",
        "properties": {
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Display name of the subdomain"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "SubDomainEditDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the subdomain; required, max 255 characters",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "SubDomainPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubDomainDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "SubDomainReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "SubDomainReferenceV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "SubTypeDtoV1": {
        "type": "object",
        "properties": {
          "definition": {
            "$ref": "#/components/schemas/PartnerConnectorDefinitionDtoV1"
          },
          "deleted": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "realTime": {
            "type": "boolean"
          },
          "subType": {
            "type": "string"
          }
        }
      },
      "SubstituteDtoV1": {
        "type": "object",
        "required": [
          "source",
          "target"
        ],
        "properties": {
          "source": {
            "type": "string"
          },
          "target": {
            "type": "string"
          }
        }
      },
      "SubstituteDtoV2": {
        "type": "object",
        "required": [
          "source",
          "target"
        ],
        "properties": {
          "source": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1
          },
          "target": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1
          }
        }
      },
      "SuccessResponseDtoV1": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        }
      },
      "SuggestProvidersDtoV2": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Jobs to suggest providers for (1-100 jobs)",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of relevant providers to return, keeping the top-N by relevancy. If omitted, all relevant providers are returned.",
            "minimum": 1
          }
        },
        "description": "Selection of jobs to suggest providers for"
      },
      "SuggestRequestDtoSpellCheckV1": {
        "type": "object",
        "required": [
          "lang",
          "words"
        ],
        "properties": {
          "lang": {
            "type": "string",
            "description": "Language code for spell check suggestions"
          },
          "referenceTexts": {
            "type": "array",
            "description": "Reference texts used for context",
            "items": {
              "type": "string"
            }
          },
          "words": {
            "type": "array",
            "description": "List of words to get spelling suggestions for",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "SuggestResponse": {
        "type": "object",
        "properties": {
          "suggestions": {
            "type": "array",
            "description": "List of spelling suggestions",
            "items": {
              "$ref": "#/components/schemas/SuggestionDtoSpellCheckV1"
            }
          },
          "word": {
            "type": "string",
            "description": "The word for which suggestions are provided"
          }
        }
      },
      "SuggestResponseDtoSpellCheckV1": {
        "type": "object",
        "properties": {
          "suggestResults": {
            "type": "array",
            "description": "Suggestion results for each submitted word",
            "items": {
              "$ref": "#/components/schemas/SuggestResponse"
            }
          }
        }
      },
      "SuggestedProvidersDtoSuggestedProvidersProvidersDtoV2": {
        "type": "object",
        "properties": {
          "relevant": {
            "type": "array",
            "description": "Providers most relevant to the selected jobs based on their languages and history",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          }
        },
        "description": "Suggested providers grouped by type"
      },
      "SuggestedProvidersDtoV2": {
        "type": "object",
        "properties": {
          "providers": {
            "$ref": "#/components/schemas/SuggestedProvidersDtoSuggestedProvidersProvidersDtoV2"
          }
        },
        "description": "Providers suggested for a selection of jobs"
      },
      "Suggestion": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          }
        }
      },
      "SuggestionDtoSpellCheckV1": {
        "type": "object",
        "properties": {
          "distance": {
            "type": "integer",
            "format": "int32",
            "description": "Edit distance between the original and the suggested word"
          },
          "word": {
            "type": "string",
            "description": "Suggested replacement word"
          }
        }
      },
      "SundaMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "pid"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "pid": {
                "type": "string",
                "description": "application ID",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SundaMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "login",
              "password"
            ],
            "properties": {
              "login": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "Systran": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SystranPnmt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "useLegacyMapping": {
                "type": "boolean",
                "description": "Use legacy mapping for Chinese locales (Traditional Chinese mapped to “zt”). Default: false"
              }
            }
          }
        ]
      },
      "SystranPnmtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "SystranSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password",
              "username"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "T3MT": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "username"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "model": {
                "type": "string",
                "description": "Mutually exclusive with preset. Enter L+6 digits for generic engine or M+7 digits for custom model",
                "minLength": 0,
                "maxLength": 255
              },
              "preset": {
                "type": "string",
                "description": "Mutually exclusive with model. Enter T+7 digits.",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "T3MTSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "T4ooRealtime": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "fieldId"
            ],
            "properties": {
              "contractId": {
                "type": "string",
                "description": "Field is optional if there is only one contract associated with the account",
                "minLength": 0,
                "maxLength": 255
              },
              "fieldId": {
                "type": "string",
                "description": "Professional field ID. Default: General",
                "minLength": 0,
                "maxLength": 32
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "T4ooRealtimeSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "accessKey",
              "secretKey"
            ],
            "properties": {
              "accessKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "secretKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TMMatchSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextType": {
            "type": "string",
            "description": "Default: PREV_AND_NEXT_SEGMENT",
            "enum": [
              "AUTO",
              "PREV_AND_NEXT_SEGMENT",
              "SEGMENT_KEY",
              "NO_CONTEXT"
            ]
          },
          "ignoreTagMetadata": {
            "type": "boolean",
            "description": "Default: true"
          },
          "metadataPriority": {
            "$ref": "#/components/schemas/MetadataPrioritySettingsDtoV1"
          },
          "penalizeMultiContextMatch": {
            "type": "boolean",
            "description": "Default: false"
          },
          "prevOrNextSegment": {
            "type": "boolean",
            "description": "Default: false"
          }
        }
      },
      "TRANSLATION_EXPORT_ENTRY": {
        "type": "object",
        "required": [
          "exportFrom",
          "exportWhen",
          "name"
        ],
        "properties": {
          "exportFrom": {
            "$ref": "#/components/schemas/TRANSLATION_EXPORT_FROM"
          },
          "exportWhen": {
            "$ref": "#/components/schemas/TRANSLATION_EXPORT_WHEN"
          },
          "exportedWorkflowStepToDeliveredAfterExport": {
            "type": "boolean",
            "description": "When true, the exported workflow step is set to delivered after the export"
          },
          "name": {
            "type": "string",
            "description": "Name of the translation-export entry"
          }
        }
      },
      "TRANSLATION_EXPORT_FROM": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Workflow step type the translation is exported from",
            "enum": [
              "FINAL_WORKFLOW_STEP",
              "WORKFLOW_STEP"
            ]
          },
          "workflowStep": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number the translation is exported from; required when type is WORKFLOW_STEP. Value between 1 and 999.",
            "minimum": 1,
            "maximum": 999
          }
        }
      },
      "TRANSLATION_EXPORT_WHEN": {
        "type": "object",
        "required": [
          "exportTrigger"
        ],
        "properties": {
          "exportTrigger": {
            "type": "string",
            "description": "Event that triggers the translation export",
            "enum": [
              "SELECTED_WORKFLOW_STEP_COMPLETED",
              "FINAL_WORKFLOW_STEP_COMPLETED",
              "PROJECT_COMPLETED"
            ]
          },
          "workflowStep": {
            "type": "integer",
            "format": "int32",
            "description": "Workflow step number that triggers the export; required when exportTrigger is SELECTED_WORKFLOW_STEP_COMPLETED. Value between 1 and 999.",
            "minimum": 1,
            "maximum": 999
          }
        }
      },
      "TRIDION_DOCS": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "tridionAccessTokenEndpoint",
              "tridionFtpHost",
              "tridionFtpPassword",
              "tridionFtpPort",
              "tridionFtpUsername",
              "tridionOidcClientId",
              "tridionOidcClientSecret"
            ],
            "properties": {
              "customLocaleMapping": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "tridionAccessTokenEndpoint": {
                "type": "string"
              },
              "tridionExportStatus": {
                "type": "string"
              },
              "tridionFtpArchiveFolder": {
                "type": "string"
              },
              "tridionFtpExportFolder": {
                "type": "string"
              },
              "tridionFtpHost": {
                "type": "string"
              },
              "tridionFtpPassword": {
                "type": "string"
              },
              "tridionFtpPort": {
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 65535
              },
              "tridionFtpUsername": {
                "type": "string"
              },
              "tridionLocaleMapping": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                }
              },
              "tridionOidcClientId": {
                "type": "string"
              },
              "tridionOidcClientSecret": {
                "type": "string"
              }
            }
          }
        ]
      },
      "TYPO3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "token"
            ],
            "properties": {
              "host": {
                "type": "string"
              },
              "sourceLang": {
                "type": "string"
              },
              "token": {
                "type": "string"
              }
            }
          }
        ]
      },
      "TagMetadata": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "Embedded markup or non-translatable sub-text the tag represents (e.g. the HTML behind a source hyperlink); not part of the plain segment text"
          },
          "id": {
            "type": "string",
            "description": "Identifier of the tag within the matched segment, used to pair related tags (e.g. a bpt/ept pair)"
          },
          "transAttributes": {
            "type": "string",
            "description": "Additional tag attributes captured for translation/matching, serialized as a string"
          },
          "type": {
            "type": "string",
            "description": "Tag role label describing the position of the tag in the markup (e.g. `bpt` for a begin-paired-tag, `ept` for an end-paired-tag) — not a literal XML element name"
          }
        }
      },
      "TagMetadataDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "Underlying markup or non-translatable sub-text the tag stands in for (e.g. the HTML behind a hyperlink); excluded from the plain segment text"
          },
          "id": {
            "type": "string",
            "description": "Identifier of the tag within the query segment, used to pair matching tags (e.g. a bpt/ept pair)"
          },
          "transAttributes": {
            "type": "string",
            "description": "Extra tag attributes used for translation/matching, serialized as a string"
          },
          "type": {
            "type": "string",
            "description": "Tag role label describing where the tag sits in the markup (e.g. `bpt` marks a begin-paired-tag, `ept` an end-paired-tag) — not a literal XML element name"
          }
        }
      },
      "TargetFileWarningsDtoV1": {
        "type": "object",
        "properties": {
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TargetLangPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TargetLanguageDtoV1": {
        "type": "object",
        "required": [
          "language"
        ],
        "properties": {
          "language": {
            "type": "string"
          }
        }
      },
      "TargetSourceIdenticalWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "TaskMappingDtoV1": {
        "type": "object",
        "properties": {
          "job": {
            "$ref": "#/components/schemas/UidReference"
          },
          "project": {
            "$ref": "#/components/schemas/UidReference"
          },
          "resourcePath": {
            "type": "string",
            "description": "Resource path of the job"
          },
          "taskId": {
            "type": "string",
            "description": "Server task ID"
          },
          "workflowLevel": {
            "type": "string",
            "description": "Workflow level (1-15)"
          }
        }
      },
      "Tauyou": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "addTranslations": {
                "type": "boolean",
                "description": "Send feedback. Default: false"
              },
              "domain": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TauyouRealTime": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "addTranslations": {
                "type": "boolean",
                "description": "Send feedback. Default: false"
              },
              "domain": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TauyouRealTimeSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password",
              "username"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TauyouSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "password",
              "username"
            ],
            "properties": {
              "password": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TbCustomFieldDtoV1": {
        "type": "object",
        "properties": {
          "fieldName": {
            "type": "string",
            "description": "Name of the custom field"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the custom field"
          },
          "level": {
            "type": "string",
            "example": "TERM",
            "description": "Level of the custom field",
            "enum": [
              "TERM",
              "CONCEPT"
            ]
          },
          "type": {
            "type": "string",
            "example": "SINGLE_SELECT",
            "description": "Type of the custom field",
            "enum": [
              "STRING",
              "NUMBER",
              "DATE",
              "BOOLEAN",
              "SINGLE_SELECT",
              "MULTI_SELECT",
              "URL"
            ]
          },
          "values": {
            "type": "array",
            "description": "List of possible values for select type fields",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "DTO representing a term base custom field"
      },
      "TbCustomFieldsDtoV1": {
        "type": "object",
        "properties": {
          "concept": {
            "type": "array",
            "description": "Custom fields for concept",
            "items": {
              "$ref": "#/components/schemas/TbUserCustomFieldDtoV1"
            }
          },
          "term": {
            "type": "array",
            "description": "Custom fields for term",
            "items": {
              "$ref": "#/components/schemas/TbUserCustomFieldDtoV1"
            }
          }
        },
        "description": "DTO representing term base custom fields"
      },
      "TbUserCustomFieldDtoV1": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Creation date of the custom field"
          },
          "fieldName": {
            "type": "string",
            "description": "Name of the custom field"
          },
          "id": {
            "type": "string",
            "description": "Unique identifier of the custom field"
          },
          "type": {
            "type": "string",
            "example": "SINGLE_SELECT",
            "description": "Type of the custom field",
            "enum": [
              "STRING",
              "NUMBER",
              "DATE",
              "BOOLEAN",
              "SINGLE_SELECT",
              "MULTI_SELECT",
              "URL"
            ]
          },
          "values": {
            "type": "array",
            "description": "List of possible values for select type fields",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "DTO representing a custom term base custom field defined by user"
      },
      "Tencent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TencentSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "token",
              "username"
            ],
            "properties": {
              "token": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "username": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "Term": {
        "type": "object",
        "properties": {
          "preferred": {
            "type": "boolean"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "TermBaseCreateDtoV1": {
        "type": "object",
        "required": [
          "langs",
          "name"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "langs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          },
          "readonly": {
            "type": "boolean"
          },
          "sourceUrl": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "TermBaseDtoPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermBaseDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TermBaseDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/BusinessUnitReferenceV1"
          },
          "canShow": {
            "type": "boolean",
            "description": "When true, the current user is allowed to view the term base"
          },
          "client": {
            "$ref": "#/components/schemas/ClientReferenceV1"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the term base was created"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "String representation of numeric ID"
          },
          "internalId": {
            "type": "integer",
            "format": "int64",
            "description": "Internal numeric ID"
          },
          "langs": {
            "type": "array",
            "description": "Language codes of the term base",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the term base"
          },
          "note": {
            "type": "string",
            "description": "Optional note for the term base"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "readonly": {
            "type": "boolean",
            "description": "When true, the term base is read-only"
          },
          "sourceUrl": {
            "type": "string",
            "description": "Source URL associated with the term base"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier"
          },
          "userAllowedOperations": {
            "type": "array",
            "description": "List of allowed operations for the current user",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TermBaseMatchDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "conceptId": {
            "type": "string"
          },
          "conceptNote": {
            "type": "string",
            "description": "Concept note"
          },
          "definition": {
            "type": "string",
            "description": "Concept definition"
          },
          "sourceTerm": {
            "$ref": "#/components/schemas/TermDtoLanguageAssetsV1"
          },
          "targetTerms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermDtoLanguageAssetsV1"
            }
          },
          "termBaseId": {
            "type": "string"
          },
          "termBaseName": {
            "type": "string"
          }
        }
      },
      "TermBasePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TermBaseDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TermBaseSearchRequestDtoV1": {
        "type": "object",
        "required": [
          "query",
          "sourceLang",
          "targetLangs"
        ],
        "properties": {
          "query": {
            "type": "string"
          },
          "sourceLang": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "New",
              "Approved"
            ]
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TermBaseSearchResultDtoV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "isAllowedToEdit": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "readonly": {
            "type": "boolean"
          },
          "sourceUrl": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "TermBaseUpdateDtoV1": {
        "type": "object",
        "required": [
          "langs",
          "name"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "langs": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "name": {
            "type": "string",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          },
          "sourceUrl": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "TermCreateByJobDtoV1": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "caseSensitive": {
            "type": "boolean",
            "description": "Default: false"
          },
          "exactMatch": {
            "type": "boolean",
            "description": "Default: false"
          },
          "forbidden": {
            "type": "boolean",
            "description": "Default: false"
          },
          "gender": {
            "type": "string",
            "description": "Grammatical gender",
            "enum": [
              "MASCULINE",
              "FEMININE",
              "NEUTRAL"
            ]
          },
          "note": {
            "type": "string",
            "description": "Optional note for the term"
          },
          "number": {
            "type": "string",
            "description": "Grammatical number",
            "enum": [
              "SINGULAR",
              "PLURAL",
              "UNCOUNTABLE"
            ]
          },
          "partOfSpeech": {
            "type": "string",
            "description": "Part of speech",
            "enum": [
              "ADJECTIVE",
              "NOUN",
              "VERB",
              "ADVERB"
            ]
          },
          "preferred": {
            "type": "boolean",
            "description": "Default: false"
          },
          "shortTranslation": {
            "type": "string",
            "description": "Short translation of the term"
          },
          "termType": {
            "type": "string",
            "description": "Term type",
            "enum": [
              "FULL_FORM",
              "SHORT_FORM",
              "ACRONYM",
              "ABBREVIATION",
              "PHRASE",
              "VARIANT"
            ]
          },
          "text": {
            "type": "string",
            "description": "The term text"
          },
          "usage": {
            "type": "string",
            "description": "Usage context for the term"
          }
        }
      },
      "TermCreateDtoV1": {
        "type": "object",
        "required": [
          "lang",
          "text"
        ],
        "properties": {
          "allowDuplicate": {
            "type": "boolean",
            "description": "Default: true. Set to false to get a duplicate warning instead of creating the term."
          },
          "caseSensitive": {
            "type": "boolean",
            "description": "Default: false"
          },
          "conceptId": {
            "type": "string"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "exactMatch": {
            "type": "boolean",
            "description": "Default: false"
          },
          "forbidden": {
            "type": "boolean",
            "description": "Default: false"
          },
          "gender": {
            "type": "string",
            "enum": [
              "MASCULINE",
              "FEMININE",
              "NEUTRAL"
            ]
          },
          "lang": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "number": {
            "type": "string",
            "enum": [
              "SINGULAR",
              "PLURAL",
              "UNCOUNTABLE"
            ]
          },
          "partOfSpeech": {
            "type": "string",
            "enum": [
              "ADJECTIVE",
              "NOUN",
              "VERB",
              "ADVERB"
            ]
          },
          "preferred": {
            "type": "boolean",
            "description": "Default: false"
          },
          "shortTranslation": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "New",
              "Approved"
            ]
          },
          "termType": {
            "type": "string",
            "enum": [
              "FULL_FORM",
              "SHORT_FORM",
              "ACRONYM",
              "ABBREVIATION",
              "PHRASE",
              "VARIANT"
            ]
          },
          "text": {
            "type": "string"
          },
          "usage": {
            "type": "string"
          }
        }
      },
      "TermDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "forbidden": {
            "type": "boolean"
          },
          "gender": {
            "type": "string",
            "enum": [
              "MASCULINE",
              "FEMININE",
              "NEUTRAL"
            ]
          },
          "locale": {
            "type": "string"
          },
          "note": {
            "type": "string",
            "description": "Term note"
          },
          "number": {
            "type": "string",
            "enum": [
              "SINGULAR",
              "PLURAL",
              "UNCOUNTABLE"
            ]
          },
          "partOfSpeech": {
            "type": "string",
            "enum": [
              "ADJECTIVE",
              "NOUN",
              "VERB",
              "ADVERB"
            ]
          },
          "preferred": {
            "type": "boolean"
          },
          "shortTranslation": {
            "type": "string",
            "description": "Short translation of the term"
          },
          "status": {
            "type": "string",
            "description": "Term status",
            "enum": [
              "NEW",
              "APPROVED"
            ]
          },
          "termId": {
            "type": "string"
          },
          "termType": {
            "type": "string",
            "enum": [
              "FULL_FORM",
              "ACRONYM",
              "ABBREVIATION",
              "SHORT_FORM",
              "PHRASE",
              "VARIANT"
            ]
          },
          "text": {
            "type": "string"
          },
          "usage": {
            "type": "string",
            "description": "Usage example of the term"
          }
        }
      },
      "TermDtoV1": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "caseSensitive": {
            "type": "boolean"
          },
          "conceptId": {
            "type": "string"
          },
          "conceptNote": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "definition": {
            "type": "string"
          },
          "domain": {
            "type": "string"
          },
          "exactMatch": {
            "type": "boolean"
          },
          "forbidden": {
            "type": "boolean"
          },
          "gender": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lang": {
            "type": "string"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "note": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "partOfSpeech": {
            "type": "string"
          },
          "preferred": {
            "type": "boolean"
          },
          "rtl": {
            "type": "boolean"
          },
          "shortTranslation": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "New",
              "Approved"
            ]
          },
          "subDomains": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "termType": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "usage": {
            "type": "string"
          },
          "writable": {
            "type": "boolean"
          }
        }
      },
      "TermEditDtoV1": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "allowDuplicate": {
            "type": "boolean",
            "description": "Default: true. Set to false to get a duplicate warning instead of updating the term."
          },
          "caseSensitive": {
            "type": "boolean",
            "description": "Default: false"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "exactMatch": {
            "type": "boolean",
            "description": "Default: false"
          },
          "forbidden": {
            "type": "boolean",
            "description": "Default: false"
          },
          "gender": {
            "type": "string",
            "enum": [
              "MASCULINE",
              "FEMININE",
              "NEUTRAL"
            ]
          },
          "lang": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "number": {
            "type": "string",
            "enum": [
              "SINGULAR",
              "PLURAL",
              "UNCOUNTABLE"
            ]
          },
          "partOfSpeech": {
            "type": "string",
            "enum": [
              "ADJECTIVE",
              "NOUN",
              "VERB",
              "ADVERB"
            ]
          },
          "preferred": {
            "type": "boolean",
            "description": "Default: false"
          },
          "shortTranslation": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "New",
              "Approved"
            ]
          },
          "termType": {
            "type": "string",
            "enum": [
              "FULL_FORM",
              "SHORT_FORM",
              "ACRONYM",
              "ABBREVIATION",
              "PHRASE",
              "VARIANT"
            ]
          },
          "text": {
            "type": "string"
          },
          "usage": {
            "type": "string"
          }
        }
      },
      "TermPairDtoV1": {
        "type": "object",
        "required": [
          "sourceTerm",
          "targetTerm"
        ],
        "properties": {
          "sourceTerm": {
            "$ref": "#/components/schemas/TermDtoV1"
          },
          "targetTerm": {
            "$ref": "#/components/schemas/TermDtoV1"
          }
        }
      },
      "TermV2DtoV2": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "caseSensitive": {
            "type": "boolean"
          },
          "conceptId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldValueDtoV1"
            }
          },
          "exactMatch": {
            "type": "boolean"
          },
          "forbidden": {
            "type": "boolean"
          },
          "gender": {
            "type": "string",
            "enum": [
              "MASCULINE",
              "FEMININE",
              "NEUTRAL"
            ]
          },
          "id": {
            "type": "string"
          },
          "lang": {
            "type": "string"
          },
          "modifiedAt": {
            "type": "string",
            "format": "date-time"
          },
          "modifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "note": {
            "type": "string"
          },
          "number": {
            "type": "string",
            "enum": [
              "SINGULAR",
              "PLURAL",
              "UNCOUNTABLE"
            ]
          },
          "partOfSpeech": {
            "type": "string",
            "enum": [
              "ADJECTIVE",
              "NOUN",
              "VERB",
              "ADVERB"
            ]
          },
          "preferred": {
            "type": "boolean"
          },
          "rtl": {
            "type": "boolean"
          },
          "shortTranslation": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "New",
              "Approved"
            ]
          },
          "termType": {
            "type": "string",
            "enum": [
              "FULL_FORM",
              "ACRONYM",
              "ABBREVIATION",
              "SHORT_FORM",
              "PHRASE",
              "VARIANT"
            ]
          },
          "text": {
            "type": "string"
          },
          "usage": {
            "type": "string"
          },
          "writable": {
            "type": "boolean"
          }
        }
      },
      "TerminologyWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "forbiddenTerms": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "missingTerms": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "TerminologyWeightsDto": {
        "type": "object",
        "properties": {
          "inconsistentUseOfTerminology": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "inconsistentWithTb": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "terminology": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "TestSendRequestDtoV1": {
        "type": "object",
        "required": [
          "body",
          "subject"
        ],
        "properties": {
          "body": {
            "type": "string",
            "description": "Body of the test email"
          },
          "subject": {
            "type": "string",
            "description": "Subject of the test email"
          }
        },
        "description": "Subject and body of a test email to send to the currently authenticated user"
      },
      "TildeMt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              }
            }
          }
        ]
      },
      "TildeMtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "clientId",
              "systemId"
            ],
            "properties": {
              "clientId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "systemId": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TmSegmentsPageDtoV2": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchTMResponseDtoV2"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TmTargetSegmentDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "locale": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "ToggleableWeightDto": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "format": "int32",
            "description": "Code of the error category"
          },
          "enabled": {
            "type": "boolean",
            "description": "If this error category is enabled, default false"
          },
          "weight": {
            "type": "number",
            "format": "double",
            "example": 1,
            "description": "Weight of this error category (0.1 - 99.9)"
          }
        }
      },
      "Toshiba": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "ToshibaSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "key_"
            ],
            "properties": {
              "key_": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "TrailingPunctuationWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "srcEndPunctuation": {
                "type": "string"
              },
              "srcPosition": {
                "$ref": "#/components/schemas/Position"
              },
              "suggestedTgtEndPunctuation": {
                "type": "string"
              },
              "tgtEndPunctuation": {
                "type": "string"
              },
              "tgtPosition": {
                "$ref": "#/components/schemas/Position"
              }
            }
          }
        ]
      },
      "TrailingSpaceWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "TransMemoryCreateDtoV1": {
        "type": "object",
        "required": [
          "name",
          "sourceLang",
          "targetLangs"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "name": {
            "type": "string",
            "description": "Display name of the new translation memory",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Optional note or description (max 4096 characters)",
            "minLength": 0,
            "maxLength": 4096
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language locale"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "description": "List of target language locales; at least one is required",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Request body for creating a translation memory; requires a name, source lang and target langs"
      },
      "TransMemoryDtoV1": {
        "type": "object",
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/BusinessUnitReferenceV1"
          },
          "client": {
            "$ref": "#/components/schemas/ClientReferenceV1"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the translation memory was created"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string",
            "description": "String representation of the internal TM database ID"
          },
          "internalId": {
            "type": "integer",
            "format": "int32",
            "description": "Internal numeric ID of the translation memory"
          },
          "name": {
            "type": "string",
            "description": "Display name of the translation memory"
          },
          "note": {
            "type": "string",
            "description": "Optional note or description for the translation memory"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language locale"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "targetLangs": {
            "type": "array",
            "description": "List of target language locales",
            "items": {
              "type": "string"
            }
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier (UID) of the translation memory"
          }
        },
        "description": "Translation memory resource returned by get, create and edit endpoints"
      },
      "TransMemoryDtoV2": {
        "type": "object",
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/BusinessUnitReferenceV1"
          },
          "canEdit": {
            "type": "boolean"
          },
          "client": {
            "$ref": "#/components/schemas/ClientReferenceV1"
          },
          "collaboratorsCount": {
            "type": "integer",
            "format": "int32"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string"
          },
          "internalId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "relatedProjectsCount": {
            "type": "integer",
            "format": "int64"
          },
          "sourceLang": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "TransMemoryDtoV3": {
        "type": "object",
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/BusinessUnitReferenceV1"
          },
          "client": {
            "$ref": "#/components/schemas/ClientReferenceV1"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time"
          },
          "domain": {
            "$ref": "#/components/schemas/DomainReferenceV1"
          },
          "id": {
            "type": "string"
          },
          "internalId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "organizationUid": {
            "type": "string",
            "description": "Unique identifier (UID) of the organization that owns the translation memory"
          },
          "sourceLang": {
            "type": "string"
          },
          "subDomain": {
            "$ref": "#/components/schemas/SubDomainReferenceV1"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "TransMemoryEditDtoV1": {
        "type": "object",
        "required": [
          "name",
          "targetLangs"
        ],
        "properties": {
          "businessUnit": {
            "$ref": "#/components/schemas/IdReference"
          },
          "client": {
            "$ref": "#/components/schemas/IdReference"
          },
          "domain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "name": {
            "type": "string",
            "description": "Display name of the translation memory",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Optional note or description (max 4096 characters)",
            "minLength": 0,
            "maxLength": 4096
          },
          "owner": {
            "$ref": "#/components/schemas/IdReference"
          },
          "subDomain": {
            "$ref": "#/components/schemas/IdReference"
          },
          "targetLangs": {
            "type": "array",
            "description": "New target languages to add. No languages can be removed",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Request body for editing an existing translation memory"
      },
      "TransMemoryMatchDtoLanguageAssetsV1": {
        "type": "object",
        "properties": {
          "netScore": {
            "type": "number",
            "format": "double"
          },
          "sourceSegmentText": {
            "type": "string"
          },
          "targetSegments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TmTargetSegmentDtoLanguageAssetsV1"
            }
          },
          "transMemoryId": {
            "type": "string"
          },
          "transMemoryName": {
            "type": "string"
          }
        }
      },
      "TransMemoryPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransMemoryDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TransMemoryPageDtoV2": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransMemoryDtoV2"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TransMemoryReferenceDtoV2": {
        "type": "object",
        "required": [
          "uid"
        ],
        "properties": {
          "internalId": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "sourceLang": {
            "type": "string"
          },
          "targetLangs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "TranslationDtoV1": {
        "type": "object",
        "required": [
          "lang",
          "text"
        ],
        "properties": {
          "lang": {
            "type": "string"
          },
          "text": {
            "type": "string"
          }
        }
      },
      "TranslationLengthWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "TranslationPriceDtoV1": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "format": "double",
            "description": "Price per billing unit"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepDtoV1"
          }
        },
        "description": "Connection between a language pair and a workflow step, contains price"
      },
      "TranslationPriceListCreateDtoV1": {
        "type": "object",
        "required": [
          "currencyCode",
          "name"
        ],
        "properties": {
          "billingUnit": {
            "type": "string",
            "description": "Billing unit for prices. Default: Word",
            "enum": [
              "Word",
              "Page",
              "Character",
              "Hour"
            ]
          },
          "currencyCode": {
            "type": "string",
            "description": "Currency code for the price list"
          },
          "isDefault": {
            "type": "boolean",
            "description": "When true, this is the default price list for the organization"
          },
          "name": {
            "type": "string",
            "description": "Name of the price list"
          }
        },
        "description": "Request body for creating or updating a price list"
      },
      "TranslationPriceListDtoV1": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "billingUnit": {
            "type": "string",
            "description": "Billing unit for prices",
            "enum": [
              "Word",
              "Page",
              "Character",
              "Hour"
            ]
          },
          "currencyCode": {
            "type": "string",
            "description": "Currency code for the price list"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the price list was created"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string",
            "readOnly": true
          },
          "isDefault": {
            "type": "boolean",
            "description": "When true, this is the default price list for the organization"
          },
          "name": {
            "type": "string",
            "description": "Name of the price list"
          },
          "priceSets": {
            "type": "array",
            "description": "Language pairs with associated prices",
            "items": {
              "$ref": "#/components/schemas/TranslationPriceSetDtoV1"
            }
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        },
        "description": "Price list with set of prices for language pairs"
      },
      "TranslationPriceListPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranslationPriceListDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TranslationPriceSetBulkDeleteDtoV1": {
        "type": "object",
        "properties": {
          "sourceLanguages": {
            "type": "array",
            "description": "Source language codes to filter. Empty list matches all source languages.",
            "items": {
              "type": "string"
            }
          },
          "targetLanguages": {
            "type": "array",
            "description": "Target language codes to filter. Empty list matches all target languages.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Language pair filter for bulk deletion"
      },
      "TranslationPriceSetBulkMinimumPricesDtoV1": {
        "type": "object",
        "properties": {
          "minimumPrice": {
            "type": "number",
            "format": "double",
            "description": "Minimum price to set for the matching language pairs"
          },
          "sourceLanguages": {
            "type": "array",
            "description": "Source language codes to filter. Empty list matches all source languages.",
            "items": {
              "type": "string"
            }
          },
          "targetLanguages": {
            "type": "array",
            "description": "Target language codes to filter. Empty list matches all target languages.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Request body for setting minimum prices on language pairs"
      },
      "TranslationPriceSetBulkPricesDtoV1": {
        "type": "object",
        "properties": {
          "price": {
            "type": "number",
            "format": "double",
            "description": "Price to set for the matching language pairs and workflow steps"
          },
          "sourceLanguages": {
            "type": "array",
            "description": "Source language codes to filter. Empty list matches all source languages.",
            "items": {
              "type": "string"
            }
          },
          "targetLanguages": {
            "type": "array",
            "description": "Target language codes to filter. Empty list matches all target languages.",
            "items": {
              "type": "string"
            }
          },
          "workflowSteps": {
            "type": "array",
            "description": "Workflow steps to filter. Empty list updates all workflow steps.",
            "items": {
              "$ref": "#/components/schemas/IdReference"
            },
            "maxItems": 15,
            "minItems": 0
          }
        },
        "description": "Request body for setting prices on language pairs"
      },
      "TranslationPriceSetCreateDtoV1": {
        "type": "object",
        "required": [
          "sourceLanguages",
          "targetLanguages"
        ],
        "properties": {
          "sourceLanguages": {
            "type": "array",
            "description": "Source language codes (1 to 100)",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1
          },
          "targetLanguages": {
            "type": "array",
            "description": "Target language codes (1 to 100)",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1
          }
        },
        "description": "Language pairs to add to a price list"
      },
      "TranslationPriceSetDtoV1": {
        "type": "object",
        "properties": {
          "minimumPrice": {
            "type": "number",
            "format": "double",
            "description": "Minimum price for this language pair"
          },
          "prices": {
            "type": "array",
            "description": "Prices per workflow step",
            "items": {
              "$ref": "#/components/schemas/TranslationPriceDtoV1"
            }
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language code"
          },
          "targetLang": {
            "type": "string",
            "description": "Target language code"
          }
        },
        "description": "Language pair for a translation price list"
      },
      "TranslationPriceSetListDtoV1": {
        "type": "object",
        "properties": {
          "priceSets": {
            "type": "array",
            "description": "Language pairs created",
            "items": {
              "$ref": "#/components/schemas/TranslationPriceSetDtoV1"
            }
          }
        },
        "description": "List of language pairs created in a price list"
      },
      "TranslationPriceSetPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranslationPriceSetDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TranslationRequestDtoV1": {
        "type": "object",
        "required": [
          "sourceTexts"
        ],
        "properties": {
          "sourceTexts": {
            "type": "array",
            "description": "Source strings to translate, returned in the same order as the translations. Must contain at least one item.",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          }
        },
        "description": "Base request body carrying the source texts to translate."
      },
      "TranslationRequestExtendedDtoV1": {
        "type": "object",
        "required": [
          "from",
          "sourceTexts",
          "to"
        ],
        "properties": {
          "filename": {
            "type": "string",
            "description": "Filename associated with the source content. Some MT engines use this for context or domain selection."
          },
          "from": {
            "type": "string",
            "description": "Source language code (for example, en or en-US). Must be a valid language code."
          },
          "sourceTexts": {
            "type": "array",
            "description": "Source strings to translate, returned in the same order as the translations. Must contain at least one item.",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "to": {
            "type": "string",
            "description": "Target language code (for example, de or de-DE). Must be a valid language code."
          }
        },
        "description": "Request body for an MT translation request, specifying source and target languages and the texts to translate."
      },
      "TranslationResourceReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "readable": {
            "type": "boolean"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "TranslationResourcesDtoV1": {
        "type": "object",
        "properties": {
          "machineTranslateSettings": {
            "$ref": "#/components/schemas/MachineTranslateSettingsReferenceV1"
          },
          "termBases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTermBaseReferenceV1"
            }
          },
          "translationMemories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTranslationMemoryReferenceV1"
            }
          }
        }
      },
      "TranslationSegmentsReferenceV2": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "description": "Remove confirmed (true), unconfirmed (false) or both segments (null). Default: null",
            "x-nullable": "true"
          },
          "locked": {
            "type": "boolean",
            "description": "Remove locked (true), unlocked (false) or both segments (null). Default: false",
            "x-nullable": "true"
          }
        }
      },
      "TtxSettingsDtoV1": {
        "type": "object",
        "properties": {
          "saveConfirmedSegments": {
            "type": "boolean",
            "description": "Default: true"
          }
        }
      },
      "TxtSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKey": {
            "type": "string",
            "description": "Regular expression whose match is used as the context key of the segment; when regexpCapturingGroups is enabled, the capturing group is used instead."
          },
          "regexpCapturingGroups": {
            "type": "boolean",
            "description": "Default: false. When true, tagRegexp/translatableTextRegexp/contextKey are matched using regexp capturing groups instead of a single overall match."
          },
          "tagRegexp": {
            "type": "string",
            "description": "Regular expression matching substrings of an already-segmented line that should be converted to Phrase TMS tags (non-translatable). Does not affect segmentation."
          },
          "translatableTextRegexp": {
            "type": "string",
            "description": "Regular expression selecting which part of an already-segmented line is translatable text; the rest of the line is treated as non-translatable. It only narrows the translatable substring of a line and cannot create, merge, or split segments - TXT import always produces exactly one segment per physical line, regardless of this setting."
          }
        },
        "description": "TXT import settings. Segmentation is fixed at one segment per physical line and cannot be configured via any field of this object."
      },
      "TypeDtoV1": {
        "type": "object",
        "properties": {
          "hasSubtypes": {
            "type": "boolean",
            "description": "Whether this engine type has further subtypes; when true, they are also inlined in `subtypes` below - no separate call is needed."
          },
          "subtypes": {
            "type": "array",
            "description": "Subtypes available for this engine type, inlined here so callers do not need a separate GET /api2/v1/memsourceTranslates/type/{type}/subtypes call. Null when hasSubtypes is false; an empty list when hasSubtypes is true but the org does not have the subtype feature enabled.",
            "items": {
              "$ref": "#/components/schemas/SubTypeDtoV1"
            }
          },
          "type": {
            "type": "string",
            "example": "GOOGLE_V3_TRANSLATE",
            "description": "Engine type identifier"
          }
        },
        "description": "One MT engine type available within a category."
      },
      "TypesDtoV1": {
        "type": "object",
        "properties": {
          "types": {
            "type": "array",
            "description": "Valid type values for the type field of POST /machineTranslateSettings",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "USER": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          {
            "type": "object",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether the user account is active",
                "readOnly": true
              },
              "email": {
                "type": "string",
                "description": "Email address",
                "readOnly": true
              },
              "firstName": {
                "type": "string",
                "description": "First name",
                "readOnly": true
              },
              "lastName": {
                "type": "string",
                "description": "Last name",
                "readOnly": true
              },
              "userName": {
                "type": "string",
                "description": "Username",
                "readOnly": true
              }
            }
          }
        ]
      },
      "UbiqusNmt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "url"
            ],
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "profile": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "UbiqusNmtSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "UidReference": {
        "type": "object",
        "required": [
          "uid"
        ],
        "properties": {
          "uid": {
            "type": "string",
            "example": "3HYnHHLkTPJfMxBCDbPXFe",
            "description": "Unique identifier of the referenced object"
          }
        },
        "description": "Reference to an object by its unique identifier"
      },
      "UnmodifiedFuzzyTranslationMTNTWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "transOrigin": {
                "type": "string"
              }
            }
          }
        ]
      },
      "UnmodifiedFuzzyTranslationTMWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "transOrigin": {
                "type": "string"
              }
            }
          }
        ]
      },
      "UnmodifiedFuzzyTranslationWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {
              "transOrigin": {
                "type": "string"
              }
            }
          }
        ]
      },
      "UnresolvedCommentWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "UnresolvedConversationWarningDtoV3": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SegmentWarningDtoV3"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "UpdateCustomFieldDtoV1": {
        "type": "object",
        "required": [
          "allowedEntities",
          "name"
        ],
        "properties": {
          "addOptions": {
            "type": "array",
            "description": "Option values to add to the field (SINGLE_SELECT and MULTI_SELECT only)",
            "items": {
              "type": "string"
            }
          },
          "allowedEntities": {
            "type": "array",
            "description": "Entity (project or job) the custom field can be assigned to. Currently exactly one entity must be supplied",
            "items": {
              "type": "string",
              "enum": [
                "PROJECT",
                "JOB"
              ]
            }
          },
          "deprecateOptions": {
            "type": "array",
            "description": "Options to deprecate, referenced by UID",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the custom field, at most 500 characters",
            "minLength": 0,
            "maxLength": 500
          },
          "name": {
            "type": "string",
            "description": "Name of the custom field, at most 255 characters",
            "minLength": 0,
            "maxLength": 255
          },
          "removeOptions": {
            "type": "array",
            "description": "Options to remove from the field, referenced by UID",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "required": {
            "type": "boolean",
            "description": "Whether the custom field must be filled in for its allowed entities"
          },
          "undeprecateOptions": {
            "type": "array",
            "description": "Previously deprecated options to reactivate, referenced by UID",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        }
      },
      "UpdateCustomFieldInstanceDtoV1": {
        "type": "object",
        "properties": {
          "selectedOptions": {
            "type": "array",
            "description": "Selected option UIDs for option-type custom fields; mutually exclusive with value",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "value": {
            "type": "string",
            "description": "Text value for text-type custom fields; mutually exclusive with selectedOptions; max 4096 chars",
            "minLength": 0,
            "maxLength": 4096
          }
        },
        "description": "Custom field instance update"
      },
      "UpdateCustomFieldInstanceWithUidDtoV1": {
        "type": "object",
        "required": [
          "customFieldInstance"
        ],
        "properties": {
          "customField": {
            "$ref": "#/components/schemas/UidReference"
          },
          "customFieldInstance": {
            "$ref": "#/components/schemas/UidReference"
          },
          "selectedOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "value": {
            "type": "string",
            "minLength": 0,
            "maxLength": 4096
          }
        }
      },
      "UpdateCustomFieldInstancesDtoV1": {
        "type": "object",
        "properties": {
          "addInstances": {
            "type": "array",
            "description": "Custom field instances to add",
            "items": {
              "$ref": "#/components/schemas/CreateCustomFieldInstanceDtoV1"
            }
          },
          "removeInstances": {
            "type": "array",
            "description": "UIDs of custom field instances to remove",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "updateInstances": {
            "type": "array",
            "description": "Custom field instances to update",
            "items": {
              "$ref": "#/components/schemas/UpdateCustomFieldInstanceWithUidDtoV1"
            }
          }
        },
        "description": "Batch update of custom field instances"
      },
      "UpdateCustomFileTypeDtoV1": {
        "type": "object",
        "properties": {
          "fileImportSettings": {
            "$ref": "#/components/schemas/FileImportSettingsCreateDtoV1"
          },
          "filenamePattern": {
            "type": "string",
            "description": "Regular expression matched against file names to detect this custom file type"
          },
          "name": {
            "type": "string",
            "description": "Name of the custom file type"
          },
          "type": {
            "type": "string",
            "description": "Underlying file format",
            "enum": [
              "html",
              "json",
              "xml",
              "multiling_xml",
              "txt"
            ]
          }
        }
      },
      "UpdateIgnoredChecksDtoV1": {
        "type": "object",
        "required": [
          "segment",
          "warningTypes"
        ],
        "properties": {
          "segment": {
            "$ref": "#/components/schemas/SegmentReferenceV1"
          },
          "warningTypes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "EmptyTranslation",
                "TrailingPunctuation",
                "Formatting",
                "JoinTags",
                "MissingNumbersV3",
                "MultipleSpacesV3",
                "NonConformingTerm",
                "NotConfirmed",
                "TranslationLength",
                "AbsoluteLength",
                "RelativeLength",
                "UnresolvedComment",
                "EmptyPairTags",
                "InconsistentTranslationTargetSource",
                "InconsistentTranslationSourceTarget",
                "ForbiddenString",
                "SpellCheck",
                "RepeatedWord",
                "InconsistentTagContent",
                "EmptyTagContent",
                "Malformed",
                "ForbiddenTerm",
                "NewerAtLowerLevel",
                "LeadingAndTrailingSpaces",
                "LeadingSpaces",
                "TrailingSpaces",
                "TargetSourceIdentical",
                "SourceOrTargetRegexp",
                "UnmodifiedFuzzyTranslation",
                "UnmodifiedFuzzyTranslationTM",
                "UnmodifiedFuzzyTranslationMTNT",
                "Moravia",
                "ExtraNumbersV3",
                "UnresolvedConversation",
                "NestedTags",
                "FuzzyInconsistencyTargetSource",
                "FuzzyInconsistencySourceTarget",
                "CustomQA",
                "MissingNonTranslatableAnnotation"
              ]
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "UpdateIgnoredWarningsDtoUpdateIgnoredJobPartSegment": {
        "type": "object",
        "required": [
          "jobPartUid",
          "segments"
        ],
        "properties": {
          "jobPartUid": {
            "type": "string"
          },
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoUpdateIgnoredSegment"
            },
            "maxItems": 500,
            "minItems": 1
          }
        }
      },
      "UpdateIgnoredWarningsDtoUpdateIgnoredSegment": {
        "type": "object",
        "required": [
          "uid",
          "warnings"
        ],
        "properties": {
          "uid": {
            "type": "string"
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoUpdateIgnoredWarning"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "UpdateIgnoredWarningsDtoUpdateIgnoredWarning": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        }
      },
      "UpdateIgnoredWarningsDtoV1": {
        "type": "object",
        "required": [
          "segments"
        ],
        "properties": {
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoUpdateIgnoredSegment"
            },
            "maxItems": 500,
            "minItems": 1
          }
        }
      },
      "UpdateIgnoredWarningsDtoV2": {
        "type": "object",
        "required": [
          "jobParts"
        ],
        "properties": {
          "jobParts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UpdateIgnoredWarningsDtoUpdateIgnoredJobPartSegment"
            },
            "maxItems": 500,
            "minItems": 1
          }
        }
      },
      "UpdateLqaProfileDtoV1": {
        "type": "object",
        "required": [
          "errorCategories",
          "name"
        ],
        "properties": {
          "errorCategories": {
            "$ref": "#/components/schemas/ErrorCategoriesDto"
          },
          "name": {
            "type": "string",
            "description": "Name of the LQA profile",
            "minLength": 1,
            "maxLength": 255
          },
          "passFailThreshold": {
            "$ref": "#/components/schemas/PassFailThresholdDto"
          },
          "penaltyPoints": {
            "$ref": "#/components/schemas/PenaltyPointsDto"
          }
        }
      },
      "UpdateServiceDtoV1": {
        "type": "object",
        "properties": {
          "billingUnit": {
            "type": "string",
            "description": "Billing unit for the service",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          },
          "generationMode": {
            "type": "string",
            "description": "Controls when quotes and analyses are generated",
            "enum": [
              "ANALYSIS_AND_QUOTE",
              "ANALYSIS",
              "NONE"
            ]
          },
          "name": {
            "type": "string",
            "description": "Internal name of the service. If provided, must not be blank.",
            "minLength": 0,
            "maxLength": 255
          },
          "publicName": {
            "type": "string",
            "description": "Public-facing name of the service. If provided, must not be blank.",
            "minLength": 0,
            "maxLength": 255
          },
          "sourceLangs": {
            "type": "array",
            "description": "BCP 47 source language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "targetLangs": {
            "type": "array",
            "description": "BCP 47 target language codes",
            "uniqueItems": true,
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          },
          "type": {
            "type": "string",
            "description": "Service type",
            "enum": [
              "ProfessionalTranslation"
            ]
          }
        },
        "description": "Request body for updating a service. Omitted fields retain their current values."
      },
      "UpdateVendorDtoV1": {
        "type": "object",
        "properties": {
          "clients": {
            "type": "array",
            "description": "Clients scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "domains": {
            "type": "array",
            "description": "Domains scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/UidReference"
          },
          "priceList": {
            "$ref": "#/components/schemas/UidReference"
          },
          "sourceLocales": {
            "type": "array",
            "description": "Source locale codes this vendor works with",
            "items": {
              "type": "string"
            }
          },
          "subDomains": {
            "type": "array",
            "description": "Sub-domains scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "targetLocales": {
            "type": "array",
            "description": "Target locale codes this vendor works with",
            "items": {
              "type": "string"
            }
          },
          "workflowSteps": {
            "type": "array",
            "description": "Workflow steps scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          }
        },
        "description": "Request to update an existing vendor"
      },
      "UploadResultDto": {
        "type": "object",
        "properties": {
          "asyncTaskId": {
            "type": "string"
          },
          "encodedName": {
            "type": "string"
          },
          "error": {
            "type": "string"
          },
          "errors": {
            "$ref": "#/components/schemas/ConnectorErrorsDto"
          },
          "folder": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "size": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "UploadedFileDtoV1": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "File name",
            "readOnly": true
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "description": "File size in bytes",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "File type",
            "readOnly": true
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths",
            "readOnly": true
          }
        }
      },
      "UploadedFilePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UploadedFileDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "User": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "UserDetailsDtoV3": {
        "type": "object",
        "required": [
          "email",
          "firstName",
          "id",
          "lastName",
          "role",
          "timezone",
          "uid",
          "userName"
        ],
        "discriminator": {
          "propertyName": "role"
        },
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When false, the user account is deactivated"
          },
          "assignableRoles": {
            "type": "array",
            "description": "Roles that the calling user may assign to this user",
            "items": {
              "type": "string"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV3"
          },
          "credentialsReadonly": {
            "type": "boolean",
            "description": "When true, the user credentials are read-only due to SSO"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the user account was created"
          },
          "dateDeleted": {
            "type": "string",
            "format": "date-time",
            "description": "Date the user account was deleted; null if the account is active"
          },
          "editorVersion": {
            "type": "string",
            "description": "Preferred editor version for the user"
          },
          "email": {
            "type": "string",
            "description": "Email address",
            "minLength": 0,
            "maxLength": 255
          },
          "firstName": {
            "type": "string",
            "description": "First name",
            "minLength": 0,
            "maxLength": 255
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal numeric ID"
          },
          "jobsInProgress": {
            "type": "integer",
            "format": "int32",
            "description": "Number of jobs currently in progress for this user"
          },
          "lastLogin": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the user's last successful login"
          },
          "lastName": {
            "type": "string",
            "description": "Last name",
            "minLength": 0,
            "maxLength": 255
          },
          "note": {
            "type": "string",
            "description": "Internal note about the user",
            "minLength": 0,
            "maxLength": 4096
          },
          "pendingEmailChange": {
            "type": "boolean",
            "description": "When true, the user has a pending email change"
          },
          "receiveNewsletter": {
            "type": "boolean",
            "description": "When true, the user receives newsletter emails"
          },
          "role": {
            "type": "string",
            "description": "User role",
            "enum": [
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER"
            ]
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone identifier",
            "minLength": 0,
            "maxLength": 255
          },
          "twoFactorAuthEnabled": {
            "type": "boolean",
            "description": "When true, the user has two-factor authentication configured"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier (UID)",
            "minLength": 0,
            "maxLength": 255
          },
          "userName": {
            "type": "string",
            "description": "Username (login name)",
            "minLength": 0,
            "maxLength": 255
          }
        },
        "description": "User with all belonging objects"
      },
      "UserDtoPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UserDtoV1": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When false, the user account is deactivated"
          },
          "anonymized": {
            "type": "boolean"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date the user account was created"
          },
          "dateDeleted": {
            "type": "string",
            "format": "date-time",
            "description": "Date the user account was deleted; null if the account is active"
          },
          "email": {
            "type": "string",
            "description": "Email address"
          },
          "firstName": {
            "type": "string",
            "description": "First name"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric ID"
          },
          "lastName": {
            "type": "string",
            "description": "Last name"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/DiscountSchemeReferenceV1"
          },
          "note": {
            "type": "string",
            "description": "Internal note about the user"
          },
          "priceList": {
            "$ref": "#/components/schemas/PriceListReferenceV1"
          },
          "role": {
            "type": "string",
            "description": "User role",
            "enum": [
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER"
            ]
          },
          "sourceLangs": {
            "type": "array",
            "description": "Source language locales the user works with",
            "items": {
              "type": "string"
            }
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language locales the user works with",
            "items": {
              "type": "string"
            }
          },
          "terminologist": {
            "type": "boolean",
            "description": "When true, the user may edit approved terms in term bases"
          },
          "timezone": {
            "type": "string",
            "description": "IANA timezone identifier"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier (UID)"
          },
          "userName": {
            "type": "string",
            "description": "Username (login name)"
          }
        },
        "description": "User summary object"
      },
      "UserPasswordEditDtoV1": {
        "type": "object",
        "required": [
          "password"
        ],
        "properties": {
          "password": {
            "type": "string",
            "minLength": 8,
            "maxLength": 255
          }
        }
      },
      "UserProfileDtoV1": {
        "type": "object",
        "required": [
          "email",
          "firstName",
          "lastName"
        ],
        "properties": {
          "avatarUrl": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "pendingEmailChange": {
            "type": "boolean",
            "description": "If user has email change pending (new email not verified)"
          },
          "readonly": {
            "type": "boolean",
            "description": "If the identity is managed by an external identity provider (SSO/SCIM/SAML). When true, PUT /userProfile silently no-ops changes to firstName/lastName/email (returns 200 with the unchanged values)."
          },
          "role": {
            "type": "string",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "subscribed": {
            "type": "boolean",
            "description": "Default: true"
          },
          "timezone": {
            "type": "string",
            "description": "IANA time zone id (e.g. `Europe/Prague`); defaults to `Europe/London` when not set. Used only to render dates and schedule notifications in the TMS UI for this user - it is display/notification only and has no effect on how the API parses or renders `dateDue`, which is always interpreted and rendered in UTC regardless of this value.",
            "minLength": 0,
            "maxLength": 255
          },
          "username": {
            "type": "string"
          }
        },
        "description": "Profile of the currently authenticated user"
      },
      "UserReferencePageDtoV2": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserReferenceV2"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UserReferenceV1": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of the user"
          },
          "firstName": {
            "type": "string",
            "description": "First name of the user"
          },
          "id": {
            "type": "string",
            "description": "Unique numeric identifier of the user"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of the user"
          },
          "role": {
            "type": "string",
            "description": "Role of the user in the organization",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique string identifier of the user"
          },
          "userName": {
            "type": "string",
            "description": "Username of the user"
          }
        }
      },
      "UserReferenceV2": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "uid": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          }
        }
      },
      "UserReferenceV3": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "SYS_ADMIN",
              "SYS_ADMIN_READ",
              "ADMIN",
              "PROJECT_MANAGER",
              "LINGUIST",
              "GUEST",
              "SUBMITTER",
              "PORTAL_MEMBER",
              "BOT"
            ]
          },
          "uid": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          }
        }
      },
      "UserReferencesDtoV1": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserReferenceV1"
            }
          }
        }
      },
      "UserStatisticsListDtoUserStatisticsDtoV1": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time of the login"
          },
          "ipAddress": {
            "type": "string",
            "description": "IP address from which the login originated"
          },
          "ipCountry": {
            "type": "string",
            "description": "Country resolved from the IP address"
          },
          "userAgent": {
            "type": "string",
            "description": "User-agent string of the client"
          }
        },
        "description": "Single login session record"
      },
      "UserStatisticsListDtoV1": {
        "type": "object",
        "required": [
          "userStatistics"
        ],
        "properties": {
          "userStatistics": {
            "type": "array",
            "description": "List of login sessions",
            "items": {
              "$ref": "#/components/schemas/UserStatisticsListDtoUserStatisticsDtoV1"
            }
          }
        },
        "description": "Envelope for user login statistics"
      },
      "VENDOR": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          {
            "type": "object",
            "properties": {
              "defaultProjectOwnerId": {
                "type": "integer",
                "format": "int64",
                "description": "ID of the default project owner for this vendor",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Vendor organization name",
                "readOnly": true
              }
            }
          }
        ]
      },
      "VOID": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QACheckDtoV2"
          },
          {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean",
                "description": "When true, this check is active"
              },
              "ignorable": {
                "type": "boolean",
                "description": "When true, linguists may mark violations of this check as ignored"
              },
              "instant": {
                "type": "boolean",
                "description": "When true, violations are highlighted immediately during translation"
              },
              "lock": {
                "type": "boolean",
                "description": "When true, linguists cannot change this check's enabled or ignorable settings"
              }
            }
          }
        ]
      },
      "VariableDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "Vendor": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractProjectDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "accessSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "analyseSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "archived": {
                "type": "boolean"
              },
              "archivedBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "businessUnit": {
                "$ref": "#/components/schemas/BusinessUnitReferenceV1"
              },
              "buyer": {
                "$ref": "#/components/schemas/BuyerReferenceV1"
              },
              "buyerOwner": {
                "$ref": "#/components/schemas/USER"
              },
              "client": {
                "$ref": "#/components/schemas/ClientReferenceV1"
              },
              "costCenter": {
                "$ref": "#/components/schemas/CostCenterReferenceV1"
              },
              "createdBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "dateArchived": {
                "type": "string",
                "format": "date-time"
              },
              "fileHandoverSettings": {
                "$ref": "#/components/schemas/FileHandoverSettingsReferenceV1"
              },
              "financialSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "isPublishedOnJobBoard": {
                "type": "boolean",
                "description": "Default: false"
              },
              "note": {
                "type": "string"
              },
              "progress": {
                "$ref": "#/components/schemas/InternalProjectDtoProgressDtoV1"
              },
              "projectWorkflowSettings": {
                "$ref": "#/components/schemas/ProjectWorkflowSettingsReferenceV1"
              },
              "purchaseOrder": {
                "type": "string"
              },
              "qualityAssuranceSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "shared": {
                "type": "boolean",
                "description": "Default: false"
              },
              "status": {
                "type": "string",
                "description": "Null when the organization hides progress and status from non-linguist, non-bot callers.",
                "enum": [
                  "NEW",
                  "ASSIGNED",
                  "COMPLETED",
                  "ACCEPTED_BY_VENDOR",
                  "DECLINED_BY_VENDOR",
                  "COMPLETED_BY_VENDOR",
                  "CANCELLED"
                ]
              },
              "template": {
                "$ref": "#/components/schemas/ProjectTemplateReferenceV1"
              },
              "workflowSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Project-specific_workflow_step_instance"
                }
              }
            }
          }
        ]
      },
      "VendorDtoV1": {
        "type": "object",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "When true, the vendor organization edition and subscription allow it to act as a vendor"
          },
          "clients": {
            "type": "array",
            "description": "Clients scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/ClientReferenceV1"
            }
          },
          "createdBy": {
            "$ref": "#/components/schemas/ProtectedUserReferenceV1"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time this vendor connection was created"
          },
          "defaultProjectOwner": {
            "$ref": "#/components/schemas/DefaultProjectOwner"
          },
          "domains": {
            "type": "array",
            "description": "Domains scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/DomainReferenceV1"
            }
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "name": {
            "type": "string",
            "description": "Display name of the vendor organization"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/DiscountSchemeReferenceV1"
          },
          "priceList": {
            "$ref": "#/components/schemas/PriceListReferenceV1"
          },
          "sourceLocales": {
            "type": "array",
            "description": "Source locale codes this vendor works with",
            "items": {
              "type": "string"
            }
          },
          "subDomains": {
            "type": "array",
            "description": "Sub-domains scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/SubDomainReferenceV1"
            }
          },
          "targetLocales": {
            "type": "array",
            "description": "Target locale codes this vendor works with",
            "items": {
              "type": "string"
            }
          },
          "timezone": {
            "type": "string",
            "description": "Timezone of the vendor organization"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "vendorToken": {
            "type": "string",
            "description": "Token used to identify and connect the vendor organization"
          },
          "workflowSteps": {
            "type": "array",
            "description": "Workflow steps scoped to this vendor",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepReferenceV1"
            }
          }
        },
        "description": "A vendor organization connected to the current organization"
      },
      "VendorPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/VendorDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "VendorReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "VendorSecuritySettingsDtoV2": {
        "type": "object",
        "properties": {
          "canChangeSharedJobDueDate": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "canChangeSharedJobDueDateEnabled": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "jobVendorsMayUploadReferences": {
            "type": "boolean",
            "description": "Default: `false`"
          }
        }
      },
      "VerbisConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "host"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "codeVerifier": {
                "type": "string"
              },
              "host": {
                "type": "string",
                "description": "Hostname of the Verbis instance. Unlike ZENDESK/SALESFORCE, this is a real hostname/URL, not a subdomain prefix."
              },
              "redirectUri": {
                "type": "string"
              }
            }
          }
        ]
      },
      "VerityWeightsDto": {
        "type": "object",
        "properties": {
          "cultureSpecificReference": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          },
          "verity": {
            "$ref": "#/components/schemas/ToggleableWeightDto"
          }
        }
      },
      "ViewDto": {
        "type": "object",
        "properties": {
          "default": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "language": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "WEBHOOK_TOKEN": {
        "type": "object",
        "properties": {
          "webhookToken": {
            "type": "string",
            "description": "Token identifying the automated project creation within the webhook URL"
          },
          "webhookUrl": {
            "type": "string",
            "description": "Full URL that triggers the automated project creation when called"
          }
        }
      },
      "WEBHOOK_TOKEN_V3": {
        "type": "object",
        "properties": {
          "webhookToken": {
            "type": "string",
            "description": "Token identifying the automated project creation within the webhook URL"
          },
          "webhookUrl": {
            "type": "string",
            "description": "Full URL that triggers the automated project creation when called"
          }
        }
      },
      "WORDPRESS": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "host",
              "token"
            ],
            "properties": {
              "basicAuthPassword": {
                "type": "string"
              },
              "basicAuthUserName": {
                "type": "string"
              },
              "forcedHttps": {
                "type": "boolean"
              },
              "host": {
                "type": "string"
              },
              "token": {
                "type": "string",
                "description": "Phrase plugin token"
              }
            }
          }
        ]
      },
      "WebEditorLinkDtoV2": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetailDtoV2"
            }
          }
        }
      },
      "WebHookDtoV2": {
        "type": "object",
        "required": [
          "events",
          "hidden",
          "id",
          "secretTokenType",
          "status",
          "uid"
        ],
        "properties": {
          "created": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the webhook was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "events": {
            "type": "array",
            "description": "Events that trigger this webhook",
            "items": {
              "type": "string",
              "enum": [
                "JOB_STATUS_CHANGED",
                "JOB_CREATED",
                "JOB_DELETED",
                "JOB_UNSHARED",
                "JOB_ASSIGNED",
                "JOB_DUE_DATE_CHANGED",
                "JOB_UPDATED",
                "JOB_TARGET_UPDATED",
                "JOB_EXPORTED",
                "JOB_UNEXPORTED",
                "JOB_AUTO_LQA_FINISHED",
                "JOB_METADATA_UPDATED",
                "JOB_CUSTOM_FIELDS_UPDATED",
                "PROJECT_CREATED",
                "PROJECT_DELETED",
                "PROJECT_UNSHARED",
                "PROJECT_STATUS_CHANGED",
                "PROJECT_DUE_DATE_CHANGED",
                "SHARED_PROJECT_ASSIGNED",
                "PROJECT_METADATA_UPDATED",
                "PRE_TRANSLATION_FINISHED",
                "ANALYSIS_CREATED",
                "CONTINUOUS_JOB_UPDATED",
                "PROJECT_TEMPLATE_CREATED",
                "PROJECT_TEMPLATE_UPDATED",
                "PROJECT_TEMPLATE_DELETED",
                "RAW_MT_CONVERTER_IMPORT_FINISHED",
                "RAW_MT_PRE_TRANSLATION_FINISHED",
                "RAW_MT_QUALITY_ESTIMATION_FINISHED",
                "TERM_BASE_TERM_CREATED",
                "TERM_BASE_TERM_UPDATED",
                "TERM_BASE_TERM_DELETED",
                "TERM_BASE_CONCEPT_CREATED",
                "TERM_BASE_CONCEPT_UPDATED",
                "TERM_BASE_CONCEPT_DELETED",
                "TERM_BASE_IMPORTED",
                "ASYNC_REQUEST_FINISHED"
              ]
            }
          },
          "failedAttempts": {
            "type": "integer",
            "format": "int32",
            "description": "Number of consecutive failed delivery attempts"
          },
          "hidden": {
            "type": "boolean",
            "description": "When true, the webhook is hidden from UI listings"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "lastModified": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the webhook was last modified"
          },
          "lastModifiedBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "name": {
            "type": "string",
            "description": "Display name of the webhook"
          },
          "secretToken": {
            "type": "string",
            "description": "Secret token sent with every webhook request for payload verification",
            "minLength": 1,
            "maxLength": 255
          },
          "secretTokenType": {
            "type": "string",
            "description": "Type of secret token header used for payload verification",
            "enum": [
              "X_MEMSOURCE_TOKEN",
              "AUTHORIZATION"
            ]
          },
          "status": {
            "type": "string",
            "description": "Whether the webhook is enabled or disabled",
            "enum": [
              "ENABLED",
              "DISABLED"
            ]
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "url": {
            "type": "string",
            "description": "URL the webhook payload is sent to"
          }
        }
      },
      "WebHookPageDtoV2": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebHookDtoV2"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "WebhookCallDtoV1": {
        "type": "object",
        "required": [
          "triggerEvent",
          "uid",
          "webhookSettings"
        ],
        "properties": {
          "body": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "errorMessage": {
            "type": "string"
          },
          "eventUid": {
            "type": "string"
          },
          "forced": {
            "type": "boolean"
          },
          "lastForcedAt": {
            "type": "string",
            "format": "date-time"
          },
          "parentUid": {
            "type": "string"
          },
          "retryAttempt": {
            "type": "integer",
            "format": "int64"
          },
          "statusCode": {
            "type": "integer",
            "format": "int64"
          },
          "triggerEvent": {
            "type": "string",
            "enum": [
              "JOB_STATUS_CHANGED",
              "JOB_CREATED",
              "JOB_DELETED",
              "JOB_UNSHARED",
              "JOB_ASSIGNED",
              "JOB_DUE_DATE_CHANGED",
              "JOB_UPDATED",
              "JOB_TARGET_UPDATED",
              "JOB_EXPORTED",
              "JOB_UNEXPORTED",
              "JOB_AUTO_LQA_FINISHED",
              "JOB_METADATA_UPDATED",
              "JOB_CUSTOM_FIELDS_UPDATED",
              "PROJECT_CREATED",
              "PROJECT_DELETED",
              "PROJECT_UNSHARED",
              "PROJECT_STATUS_CHANGED",
              "PROJECT_DUE_DATE_CHANGED",
              "SHARED_PROJECT_ASSIGNED",
              "PROJECT_METADATA_UPDATED",
              "PRE_TRANSLATION_FINISHED",
              "ANALYSIS_CREATED",
              "CONTINUOUS_JOB_UPDATED",
              "PROJECT_TEMPLATE_CREATED",
              "PROJECT_TEMPLATE_UPDATED",
              "PROJECT_TEMPLATE_DELETED",
              "RAW_MT_CONVERTER_IMPORT_FINISHED",
              "RAW_MT_PRE_TRANSLATION_FINISHED",
              "RAW_MT_QUALITY_ESTIMATION_FINISHED",
              "TERM_BASE_TERM_CREATED",
              "TERM_BASE_TERM_UPDATED",
              "TERM_BASE_TERM_DELETED",
              "TERM_BASE_CONCEPT_CREATED",
              "TERM_BASE_CONCEPT_UPDATED",
              "TERM_BASE_CONCEPT_DELETED",
              "TERM_BASE_IMPORTED",
              "ASYNC_REQUEST_FINISHED"
            ]
          },
          "uid": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "webhookSettings": {
            "$ref": "#/components/schemas/UidReference"
          }
        }
      },
      "WebhookPreviewsDtoV2": {
        "type": "object",
        "properties": {
          "previews": {
            "type": "array",
            "description": "Preview entries, one per requested event",
            "items": {
              "$ref": "#/components/schemas/WebhookPreviewsDtoWebhookPreviewDtoV2"
            }
          }
        }
      },
      "WebhookPreviewsDtoWebhookPreviewDtoV2": {
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "description": "Webhook event type this preview represents",
            "enum": [
              "JOB_STATUS_CHANGED",
              "JOB_CREATED",
              "JOB_DELETED",
              "JOB_UNSHARED",
              "JOB_ASSIGNED",
              "JOB_DUE_DATE_CHANGED",
              "JOB_UPDATED",
              "JOB_TARGET_UPDATED",
              "JOB_EXPORTED",
              "JOB_UNEXPORTED",
              "JOB_AUTO_LQA_FINISHED",
              "JOB_METADATA_UPDATED",
              "JOB_CUSTOM_FIELDS_UPDATED",
              "PROJECT_CREATED",
              "PROJECT_DELETED",
              "PROJECT_UNSHARED",
              "PROJECT_STATUS_CHANGED",
              "PROJECT_DUE_DATE_CHANGED",
              "SHARED_PROJECT_ASSIGNED",
              "PROJECT_METADATA_UPDATED",
              "PRE_TRANSLATION_FINISHED",
              "ANALYSIS_CREATED",
              "CONTINUOUS_JOB_UPDATED",
              "PROJECT_TEMPLATE_CREATED",
              "PROJECT_TEMPLATE_UPDATED",
              "PROJECT_TEMPLATE_DELETED",
              "RAW_MT_CONVERTER_IMPORT_FINISHED",
              "RAW_MT_PRE_TRANSLATION_FINISHED",
              "RAW_MT_QUALITY_ESTIMATION_FINISHED",
              "TERM_BASE_TERM_CREATED",
              "TERM_BASE_TERM_UPDATED",
              "TERM_BASE_TERM_DELETED",
              "TERM_BASE_CONCEPT_CREATED",
              "TERM_BASE_CONCEPT_UPDATED",
              "TERM_BASE_CONCEPT_DELETED",
              "TERM_BASE_IMPORTED",
              "ASYNC_REQUEST_FINISHED"
            ]
          },
          "preview": {
            "type": "string",
            "description": "Sample JSON request body for this event"
          }
        }
      },
      "WebsiteDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string"
          },
          "stores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StoreDto"
            }
          }
        }
      },
      "WildCardSearchByJobRequestDtoV3": {
        "type": "object",
        "required": [
          "query"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "example": 15,
            "description": "Number of results to return",
            "minimum": 1,
            "maximum": 50
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "example": 0,
            "description": "Zero-based offset for paginating results"
          },
          "query": {
            "type": "string",
            "description": "Wildcard search query"
          },
          "reverse": {
            "type": "boolean",
            "example": false,
            "description": "When true, reverses the source/target language direction for the search"
          }
        }
      },
      "WildCardSearchRequestDtoV1": {
        "type": "object",
        "required": [
          "sourceLang"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of results to return (1-50, default 15)",
            "minimum": 1,
            "maximum": 50
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "description": "Number of results to skip for pagination (default 0)"
          },
          "query": {
            "type": "string",
            "description": "Wildcard search query; supports * and ? wildcards. Defaults to * when blank"
          },
          "sourceLang": {
            "type": "string",
            "description": "Source language locale"
          },
          "targetLangs": {
            "type": "array",
            "description": "Target language locales; defaults to all TM target languages",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Request body for wildcard TM search; supports * and ? wildcards in the query string"
      },
      "WorkflowChangesDtoV2": {
        "type": "object",
        "required": [
          "jobs"
        ],
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            },
            "maxItems": 100,
            "minItems": 1
          }
        }
      },
      "WorkflowStepDtoV1": {
        "type": "object",
        "properties": {
          "abbr": {
            "type": "string",
            "description": "Abbreviation of the workflow step (1–3 characters)"
          },
          "id": {
            "type": "string",
            "description": "Internal numeric identifier, encoded as a string"
          },
          "lqaEnabled": {
            "type": "boolean",
            "description": "When true, LQA is enabled for this step"
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow step"
          },
          "order": {
            "type": "integer",
            "format": "int32",
            "description": "Display order of the workflow step"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "WorkflowStepPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "WorkflowStepReferencePageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepReferenceV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "WorkflowStepReferenceV1": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "lqaEnabled": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "WorkflowStepReferenceV2": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "lqaEnabled": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "WorkflowStepReferenceV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "lqaEnabled": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "uid": {
            "type": "string"
          }
        }
      },
      "WorkflowStepSettingsDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "assignedTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsAssignedToDto"
            }
          },
          "lqaProfile": {
            "$ref": "#/components/schemas/UidReference"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/ProjectTemplateNotifyProviderDtoProjectTemplateV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          }
        }
      },
      "WorkflowStepSettingsEditDtoProjectTemplateV1": {
        "type": "object",
        "properties": {
          "assignedTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsAssignedToDto"
            }
          },
          "lqaProfile": {
            "$ref": "#/components/schemas/UidReference"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "WorkflowStepSettingsEditV2DtoV2": {
        "type": "object",
        "properties": {
          "assignedTo": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateWorkflowSettingsAssignedToDto"
            }
          },
          "lqaProfile": {
            "$ref": "#/components/schemas/UidReference"
          },
          "notifyProvider": {
            "$ref": "#/components/schemas/NotifyProviderDtoV1"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "Xlf2SettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeyXPath": {
            "type": "string"
          },
          "copySourceToTargetIfNotImported": {
            "type": "boolean",
            "description": "Default: true"
          },
          "exportAttrsWhenConfirmedAndLocked": {
            "type": "string",
            "description": "Default: state=final"
          },
          "exportAttrsWhenConfirmedAndNotLocked": {
            "type": "string",
            "description": "Default: state=final"
          },
          "exportAttrsWhenNotConfirmedAndLocked": {
            "type": "string"
          },
          "exportAttrsWhenNotConfirmedAndNotLocked": {
            "type": "string"
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importAsConfirmedRules": {
            "type": "string",
            "description": "Default: state=final"
          },
          "importAsLockedRules": {
            "type": "string"
          },
          "importNotes": {
            "type": "boolean",
            "description": "Default: true"
          },
          "lineBreakTags": {
            "type": "boolean",
            "description": "Default: false"
          },
          "preserveCharEntities": {
            "type": "string"
          },
          "preserveWhitespace": {
            "type": "boolean",
            "description": "Default: true"
          },
          "respectTranslateAttr": {
            "type": "boolean",
            "description": "Default: true"
          },
          "saveConfirmedSegments": {
            "type": "boolean",
            "description": "Default: true"
          },
          "segmentation": {
            "type": "boolean",
            "description": "Default: true"
          },
          "skipImportRules": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string",
            "description": "Regular expression matching substrings of a translatable XLIFF segment that should be converted to Phrase TMS tags (non-translatable), e.g. to protect placeholders like `{0}` or `%s`."
          },
          "updateTargetLanguage": {
            "type": "boolean",
            "description": "Default: false"
          },
          "xslFile": {
            "type": "string",
            "description": "UID of uploaded XSL file, overrides xslUrl"
          },
          "xslUrl": {
            "type": "string"
          }
        }
      },
      "XlfSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextType": {
            "type": "string"
          },
          "copySourceToTargetIfNotImported": {
            "type": "boolean",
            "description": "Default: true"
          },
          "exportAttrsWhenConfirmedAndLocked": {
            "type": "string"
          },
          "exportAttrsWhenConfirmedAndNotLocked": {
            "type": "string"
          },
          "exportAttrsWhenNotConfirmedAndLocked": {
            "type": "string"
          },
          "exportAttrsWhenNotConfirmedAndNotLocked": {
            "type": "string"
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "importAsConfirmedRules": {
            "type": "string",
            "description": "Multiple rules must be separated by semicolon"
          },
          "importAsConfirmedXPath": {
            "type": "string"
          },
          "importAsLockedRules": {
            "type": "string"
          },
          "importAsLockedXPath": {
            "type": "string"
          },
          "importNotes": {
            "type": "boolean",
            "description": "Default: true"
          },
          "importXPath": {
            "type": "string"
          },
          "lineBreakTags": {
            "type": "boolean",
            "description": "Default: false"
          },
          "preserveCharEntities": {
            "type": "string"
          },
          "preserveWhitespace": {
            "type": "boolean",
            "description": "Default: true"
          },
          "saveConfirmedSegments": {
            "type": "boolean",
            "description": "Default: true"
          },
          "segmentation": {
            "type": "boolean",
            "description": "Default: true"
          },
          "skipImportRules": {
            "type": "string",
            "description": "Default: translate=no; examples: translate=no;approved=no;state=needs-adaptation"
          },
          "tagRegexp": {
            "type": "string",
            "description": "Regular expression matching substrings of a translatable XLIFF segment that should be converted to Phrase TMS tags (non-translatable), e.g. to protect placeholders like `{0}` or `%s`."
          },
          "updateTargetLanguage": {
            "type": "boolean",
            "description": "Default: false"
          },
          "xslFile": {
            "type": "string",
            "description": "UID of uploaded XSL file, overrides xslUrl"
          },
          "xslUrl": {
            "type": "string"
          }
        }
      },
      "XlsSettingsDtoV1": {
        "type": "object",
        "properties": {
          "cellFlow": {
            "type": "string",
            "description": "Default: DownRight",
            "enum": [
              "DownRight",
              "RightDown",
              "DownLeft",
              "LeftDown"
            ]
          },
          "comments": {
            "type": "boolean",
            "description": "Default: false"
          },
          "hidden": {
            "type": "boolean",
            "description": "Default: false"
          },
          "htmlSubfilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "other": {
            "type": "boolean",
            "description": "Default: false"
          },
          "sheetNames": {
            "type": "boolean",
            "description": "Default: false"
          },
          "specifiedColumns": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          }
        }
      },
      "XmlAssistantProfileListDtoV1": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the profile was created"
          },
          "createdBy": {
            "$ref": "#/components/schemas/ProtectedUserReferenceV1"
          },
          "description": {
            "type": "string",
            "description": "Description of the XML assistant profile"
          },
          "name": {
            "type": "string",
            "description": "Display name of the XML assistant profile"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the profile was last updated; null if never updated"
          },
          "updatedBy": {
            "$ref": "#/components/schemas/ProtectedUserReferenceV1"
          }
        }
      },
      "XmlAssistantProfileListPageDtoV1": {
        "type": "object",
        "properties": {
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/XmlAssistantProfileListDtoV1"
            }
          },
          "numberOfElements": {
            "type": "integer",
            "format": "int32"
          },
          "pageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "pageSize": {
            "type": "integer",
            "format": "int32"
          },
          "sort": {
            "$ref": "#/components/schemas/Sort"
          },
          "totalElements": {
            "type": "integer",
            "format": "int32"
          },
          "totalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "XmlSettingsDtoV1": {
        "type": "object",
        "properties": {
          "assistantProfile": {
            "type": "string"
          },
          "contextKeyXPath": {
            "type": "string"
          },
          "contextNoteXpath": {
            "type": "string"
          },
          "entities": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "excludeAttributesPlain": {
            "type": "string",
            "description": "Example: `\"lang,href\"`"
          },
          "excludeElementsPlain": {
            "type": "string",
            "description": "Example: `\"script,par\"`"
          },
          "expandEntities": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "htmlSubfilterElementsPlain": {
            "type": "string",
            "description": "Example: `\"tt,b\"`"
          },
          "htmlSubfilterElementsXpath": {
            "type": "string"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "importComments": {
            "type": "boolean",
            "description": "Default: `true`"
          },
          "includeAttributesPlain": {
            "type": "string",
            "description": "Example: `\"title\"`"
          },
          "includeElementsPlain": {
            "type": "string",
            "description": "Default: `\"*\"`, example: `\"para,heading\"`"
          },
          "includeXPath": {
            "type": "string"
          },
          "inlineElementsAutoPlain": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "inlineElementsAutoXPath": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "inlineElementsNonTranslatablePlain": {
            "type": "string",
            "description": "Example: `\"tt,b\"`"
          },
          "inlineElementsNonTranslatableXPath": {
            "type": "string"
          },
          "inlineElementsPlain": {
            "type": "string"
          },
          "inlineElementsXpath": {
            "type": "string"
          },
          "lockAttributesPlain": {
            "type": "string"
          },
          "lockElementsPlain": {
            "type": "string"
          },
          "lockXPath": {
            "type": "string"
          },
          "maxLenXPath": {
            "type": "string"
          },
          "preserveCharEntities": {
            "type": "string"
          },
          "preserveWhitespaceXPath": {
            "type": "string"
          },
          "rulesFormat": {
            "type": "string",
            "description": "Default: `\"PLAIN\"`",
            "enum": [
              "PLAIN",
              "XPATH"
            ]
          },
          "segmentation": {
            "type": "boolean",
            "description": "Default: `true`"
          },
          "segmentationExclude": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "segmentationExcludedElementsXpath": {
            "type": "string"
          },
          "tagRegexp": {
            "type": "string"
          },
          "xslFile": {
            "type": "string",
            "description": "UID of uploaded XSL file, overrides `xslUrl`"
          },
          "xslUrl": {
            "type": "string"
          }
        }
      },
      "YamlSettingsDtoV1": {
        "type": "object",
        "properties": {
          "contextKeyPath": {
            "type": "string"
          },
          "contextPath": {
            "type": "string"
          },
          "excludeValueRegexp": {
            "type": "string"
          },
          "htmlSubFilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "icuSubFilter": {
            "type": "boolean",
            "description": "Default: `false`"
          },
          "includeKeyRegexp": {
            "type": "string"
          },
          "indentEmptyLinesInString": {
            "type": "boolean",
            "description": "Default: true"
          },
          "localeFormat": {
            "type": "string",
            "enum": [
              "MEMSOURCE",
              "RFC_5646",
              "ANDROID_QUALIFIER",
              "ANDROID_QUALIFIER_BCP"
            ]
          },
          "markdownSubfilter": {
            "type": "boolean",
            "description": "Default: false"
          },
          "tagRegexp": {
            "type": "string"
          },
          "updateRootElementLang": {
            "type": "boolean",
            "description": "Default: false"
          }
        }
      },
      "Yandex": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "model": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "YandexSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "apiKey"
            ],
            "properties": {
              "apiKey": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "Yappn": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMachineTranslateSettingsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "domain",
              "url"
            ],
            "properties": {
              "domain": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "includeTags": {
                "type": "boolean",
                "description": "Default: false"
              },
              "projectNumber": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              },
              "url": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "YappnSecrets": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MachineTranslateSettingsSecretsDtoV1"
          },
          {
            "type": "object",
            "required": [
              "credential"
            ],
            "properties": {
              "credential": {
                "type": "string",
                "minLength": 0,
                "maxLength": 255
              }
            }
          }
        ]
      },
      "ZendeskConnectorConfigurationDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectorConfigurationDto"
          },
          {
            "type": "object",
            "required": [
              "code",
              "host"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "flaggedForTranslation": {
                "type": "boolean"
              },
              "host": {
                "type": "string",
                "description": "The Zendesk subdomain prefix, e.g. `mycompany` for `mycompany.zendesk.com`. Not a URL and not the TMS host: no scheme, no `.zendesk.com` suffix."
              },
              "labelForTranslation": {
                "type": "string"
              },
              "postTranslationLabel": {
                "type": "string"
              },
              "redirectUri": {
                "type": "string"
              },
              "removeFlagOnPostTranslation": {
                "type": "boolean"
              },
              "zendeskForTranslationLabel": {
                "type": "string"
              },
              "zendeskInTranslationLabel": {
                "type": "string"
              },
              "zendeskPublishStrategyType": {
                "type": "string",
                "enum": [
                  "DRAFT",
                  "PUBLISH"
                ]
              },
              "zendeskTranslateLabels": {
                "type": "boolean"
              },
              "zendeskWhenNotUsingWorkflowIgnoreNonSourceChanges": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "A_quote_for_translation_work": {
        "type": "object",
        "properties": {
          "analyseUid": {
            "type": "string",
            "description": "UID of the analysis this quote was generated from; null if not analysis-based"
          },
          "billingUnit": {
            "type": "string",
            "description": "Billing unit used for pricing",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "currency": {
            "type": "string",
            "description": "Currency code (ISO 4217) of the quote"
          },
          "customerEmail": {
            "type": "string",
            "description": "Customer email address for the quote; null if not set"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the quote was created"
          },
          "editable": {
            "type": "boolean",
            "description": "When true, the calling user may edit this quote"
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal numeric identifier"
          },
          "innerId": {
            "type": "integer",
            "format": "int32",
            "description": "Sequential quote number within the project"
          },
          "name": {
            "type": "string",
            "description": "Quote name; defaults to \"Quote #<innerId>\" when not explicitly set"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "outdated": {
            "type": "boolean",
            "description": "When true, the quote is outdated and should be recalculated"
          },
          "priceList": {
            "$ref": "#/components/schemas/PriceListReferenceV1"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "quoteType": {
            "type": "string",
            "description": "Type of the quote",
            "enum": [
              "BUYER",
              "PROVIDER"
            ]
          },
          "status": {
            "type": "string",
            "description": "Current status of the quote",
            "enum": [
              "APPROVED",
              "DECLINED",
              "DRAFT",
              "FOR_APPROVAL",
              "NEW"
            ]
          },
          "totalPrice": {
            "type": "number",
            "format": "double",
            "description": "Total price of the quote; null if not yet calculated"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "workflowStepList": {
            "type": "array",
            "description": "Workflow steps included in the quote",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepReferenceV1"
            }
          }
        }
      },
      "A_quote_for_translation_work_v2_": {
        "type": "object",
        "properties": {
          "additionalSteps": {
            "type": "array",
            "description": "Additional workflow steps added to the quote by name",
            "items": {
              "$ref": "#/components/schemas/An_additional_workflow_step_on_a_v2_quote"
            }
          },
          "billingUnit": {
            "type": "string",
            "description": "Billing unit used for pricing",
            "enum": [
              "Character",
              "Word",
              "Page",
              "Hour"
            ]
          },
          "createdBy": {
            "$ref": "#/components/schemas/UserReferenceV1"
          },
          "currency": {
            "type": "string",
            "description": "Currency code (ISO 4217) of the quote"
          },
          "customerEmail": {
            "type": "string",
            "description": "Customer email address for the quote; null if not set"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the quote was created"
          },
          "editable": {
            "type": "boolean",
            "description": "When true, the calling user may edit this quote"
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Internal numeric identifier"
          },
          "name": {
            "type": "string",
            "description": "Quote name"
          },
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "outdated": {
            "type": "boolean",
            "description": "When true, the quote is outdated and should be recalculated"
          },
          "priceList": {
            "$ref": "#/components/schemas/PriceListReferenceV1"
          },
          "provider": {
            "$ref": "#/components/schemas/ProviderReferenceV1"
          },
          "quoteType": {
            "type": "string",
            "description": "Type of the quote",
            "enum": [
              "BUYER",
              "PROVIDER"
            ]
          },
          "status": {
            "type": "string",
            "description": "Current status of the quote",
            "enum": [
              "APPROVED",
              "DECLINED",
              "DRAFT",
              "FOR_APPROVAL",
              "NEW"
            ]
          },
          "totalPrice": {
            "type": "number",
            "format": "double",
            "description": "Total price of the quote; null if not yet calculated"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "workflowStepList": {
            "type": "array",
            "description": "Workflow steps included in the quote",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepReferenceV1"
            }
          }
        }
      },
      "A_reference_to_a_job_part_workflow-step_instance_of_a_job_": {
        "type": "object",
        "properties": {
          "continuous": {
            "type": "boolean",
            "description": "When true, this is a continuous job that automatically imports updated source files"
          },
          "dateCreated": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the job part was created"
          },
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date of the job part; null if not set"
          },
          "filename": {
            "type": "string",
            "description": "Original filename of the job"
          },
          "imported": {
            "type": "boolean",
            "description": "When true, the file has been fully imported and is ready for translation"
          },
          "jobAssignedEmailTemplate": {
            "$ref": "#/components/schemas/ObjectReference"
          },
          "notificationIntervalInMinutes": {
            "type": "integer",
            "format": "int32",
            "description": "Minimum interval in minutes between assignment notification emails"
          },
          "providers": {
            "type": "array",
            "description": "Providers assigned to this job part. This field is empty for callers\nwithout linguist visibility and does not reflect actual job assignment - it is not a reliable\nway to check whether anyone is assigned. To check your own assignment, use\nGET /api2/v1/users/{userUid}/jobs instead.",
            "items": {
              "$ref": "#/components/schemas/ProviderReferenceV1"
            }
          },
          "sourceFileUid": {
            "type": "string",
            "description": "UID of the source file; null if unavailable"
          },
          "status": {
            "type": "string",
            "description": "Current status of the job part",
            "enum": [
              "NEW",
              "ACCEPTED",
              "DECLINED",
              "REJECTED",
              "DELIVERED",
              "EMAILED",
              "COMPLETED",
              "CANCELLED"
            ]
          },
          "targetLang": {
            "type": "string",
            "description": "Target language code"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          },
          "updateSourceDate": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the source file was last updated; null if never updated"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Position of the workflow step (1-based)"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/WorkflowStepReferenceV1"
          }
        }
      },
      "A_reference_to_a_project": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the project"
          },
          "uid": {
            "type": "string",
            "description": "Unique identifier used in API paths"
          }
        }
      },
      "Admin_Project_Manager": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractProjectDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "accessSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "analyseSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "archived": {
                "type": "boolean"
              },
              "archivedBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "businessUnit": {
                "$ref": "#/components/schemas/BusinessUnitReferenceV1"
              },
              "client": {
                "$ref": "#/components/schemas/ClientReferenceV1"
              },
              "costCenter": {
                "$ref": "#/components/schemas/CostCenterReferenceV1"
              },
              "createdBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "dateArchived": {
                "type": "string",
                "format": "date-time"
              },
              "fileHandoverSettings": {
                "$ref": "#/components/schemas/FileHandoverSettingsReferenceV1"
              },
              "financialSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "isPublishedOnJobBoard": {
                "type": "boolean",
                "description": "Default: false"
              },
              "note": {
                "type": "string"
              },
              "progress": {
                "$ref": "#/components/schemas/InternalProjectDtoProgressDtoV1"
              },
              "projectWorkflowSettings": {
                "$ref": "#/components/schemas/ProjectWorkflowSettingsReferenceV1"
              },
              "purchaseOrder": {
                "type": "string"
              },
              "qualityAssuranceSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "shared": {
                "type": "boolean",
                "description": "Default: false"
              },
              "status": {
                "type": "string",
                "description": "Null when the organization hides progress and status from non-linguist, non-bot callers.",
                "enum": [
                  "NEW",
                  "ASSIGNED",
                  "COMPLETED",
                  "ACCEPTED_BY_VENDOR",
                  "DECLINED_BY_VENDOR",
                  "COMPLETED_BY_VENDOR",
                  "CANCELLED"
                ]
              },
              "template": {
                "$ref": "#/components/schemas/ProjectTemplateReferenceV1"
              },
              "workflowSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Project-specific_workflow_step_instance"
                }
              }
            }
          }
        ]
      },
      "Admin_Project_Manager_v2_": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractProjectDtoV2"
          },
          {
            "type": "object",
            "properties": {
              "accessSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "analyseSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "businessUnit": {
                "$ref": "#/components/schemas/BusinessUnitReferenceV1"
              },
              "client": {
                "$ref": "#/components/schemas/ClientReferenceV1"
              },
              "costCenter": {
                "$ref": "#/components/schemas/CostCenterReferenceV1"
              },
              "createdBy": {
                "$ref": "#/components/schemas/UserReferenceV1"
              },
              "dateDue": {
                "type": "string",
                "format": "date-time",
                "description": "Project due date; null when the organization hides progress and status from non-linguist, non-bot callers."
              },
              "fileHandoverSettings": {
                "$ref": "#/components/schemas/FileHandoverSettingsReferenceV1"
              },
              "financialSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "isPublishedOnJobBoard": {
                "type": "boolean",
                "description": "Default: false"
              },
              "note": {
                "type": "string"
              },
              "progress": {
                "$ref": "#/components/schemas/InternalProjectDtoProgressDtoV2"
              },
              "projectWorkflowSettings": {
                "$ref": "#/components/schemas/ProjectWorkflowSettingsReferenceV1"
              },
              "purchaseOrder": {
                "type": "string"
              },
              "qualityAssuranceSettings": {
                "$ref": "#/components/schemas/ObjectReference"
              },
              "shared": {
                "type": "boolean",
                "description": "Default: false"
              },
              "workflowSteps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ProjectWorkflowStepDtoV2"
                }
              }
            }
          }
        ]
      },
      "An_additional_workflow_step_on_a_v2_quote": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Internal identifier of the additional workflow step"
          },
          "name": {
            "type": "string",
            "description": "Name of the additional workflow step"
          }
        }
      },
      "Email_quotes_request": {
        "type": "object",
        "required": [
          "body",
          "quotes",
          "subject"
        ],
        "properties": {
          "bcc": {
            "type": "string",
            "description": "BCC email addresses"
          },
          "body": {
            "type": "string",
            "description": "Email body"
          },
          "cc": {
            "type": "string",
            "description": "CC email addresses"
          },
          "quotes": {
            "type": "array",
            "description": "UIDs of the quotes to send; all must have a provider assigned",
            "items": {
              "$ref": "#/components/schemas/UidReference"
            }
          },
          "subject": {
            "type": "string",
            "description": "Email subject"
          }
        }
      },
      "Email_quotes_response": {
        "type": "object",
        "properties": {
          "recipients": {
            "type": "array",
            "description": "Email addresses of the providers the quotes were sent to",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "File_naming_and_output_folder_settings_for_a_project": {
        "type": "object",
        "properties": {
          "completedFilePattern": {
            "type": "string",
            "description": "Pattern used to rename completed files; max 255 characters",
            "minLength": 0,
            "maxLength": 255
          },
          "renameCompleted": {
            "type": "boolean",
            "description": "When true, completed files are renamed according to completedFilePattern"
          },
          "targetFolderPath": {
            "type": "string",
            "description": "Output folder path for completed files; max 255 characters",
            "minLength": 0,
            "maxLength": 255
          }
        }
      },
      "Financial_settings_for_a_project": {
        "type": "object",
        "properties": {
          "netRateScheme": {
            "$ref": "#/components/schemas/NetRateSchemeReferenceV1"
          },
          "priceList": {
            "$ref": "#/components/schemas/PriceListReferenceV1"
          }
        }
      },
      "Job_parts_affected_by_the_operation_together_with_their_project": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Job parts affected by the operation",
            "items": {
              "$ref": "#/components/schemas/A_reference_to_a_job_part_workflow-step_instance_of_a_job_"
            }
          },
          "project": {
            "$ref": "#/components/schemas/A_reference_to_a_project"
          }
        }
      },
      "Linguist_v2_": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractProjectDtoV2"
          },
          {
            "type": "object",
            "properties": {}
          }
        ]
      },
      "List_of_job_parts": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "description": "Job parts affected by the operation",
            "items": {
              "$ref": "#/components/schemas/A_reference_to_a_job_part_workflow-step_instance_of_a_job_"
            }
          }
        }
      },
      "PreAnalyseTarget_Compare": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractAnalyseSettingsDtoV1"
          },
          {
            "type": "object",
            "properties": {
              "includeFuzzyRepetitions": {
                "type": "boolean",
                "description": "When true, internal fuzzy matches (segments that fuzzily repeat within the analyzed content) are included in the counts. Default: false"
              },
              "includeMachineTranslationMatches": {
                "type": "boolean",
                "description": "When true, machine translation matches are included in the counts. Default: false"
              },
              "includeNonTranslatables": {
                "type": "boolean",
                "description": "When true, non-translatable segments are included in the counts. Default: false"
              },
              "machineTranslatePostEditing": {
                "type": "boolean",
                "description": "When true, measures the post-editing distance against machine translation matches. Default: false"
              },
              "nonTranslatablePostEditing": {
                "type": "boolean",
                "description": "When true, measures the post-editing distance for non-translatable segments. Default: false"
              },
              "separateFuzzyRepetitions": {
                "type": "boolean",
                "description": "When true, internal fuzzy repetitions are counted as a separate category instead of being merged into the Repetitions count. Default: false"
              },
              "skipMtScoreThreshold": {
                "type": "number",
                "format": "double",
                "description": "Used only for type=PreAnalyseTarget. Threshold above which the MT suggestions are not used. Default: value from PreTranslate settings"
              },
              "transMemoryPostEditing": {
                "type": "boolean",
                "description": "When true, measures the post-editing distance against translation memory matches. Default: false"
              }
            }
          }
        ]
      },
      "Project-specific_workflow_step_instance": {
        "type": "object",
        "properties": {
          "abbreviation": {
            "type": "string",
            "description": "Abbreviation of the workflow step"
          },
          "id": {
            "type": "integer",
            "format": "int64",
            "description": "Project-specific step ID; use this for user assignments, not the global workflow step ID"
          },
          "lqaProfileUid": {
            "type": "string",
            "description": "UID of the LQA profile assigned to this step; null if none assigned"
          },
          "name": {
            "type": "string",
            "description": "Name of the workflow step"
          },
          "workflowLevel": {
            "type": "integer",
            "format": "int32",
            "description": "Position of the workflow step within the project (1-based)"
          },
          "workflowStep": {
            "$ref": "#/components/schemas/ObjectReference"
          }
        }
      },
      "Quality_assurance_checks_enabled_for_a_project": {
        "type": "object",
        "properties": {
          "enabledChecks": {
            "type": "array",
            "description": "List of QA warning types that are currently enabled for the project",
            "items": {
              "type": "string",
              "enum": [
                "EmptyTranslation",
                "TrailingPunctuation",
                "Formatting",
                "JoinTags",
                "MissingNumbersV3",
                "MultipleSpacesV3",
                "NonConformingTerm",
                "NotConfirmed",
                "TranslationLength",
                "AbsoluteLength",
                "RelativeLength",
                "UnresolvedComment",
                "EmptyPairTags",
                "InconsistentTranslationTargetSource",
                "InconsistentTranslationSourceTarget",
                "ForbiddenString",
                "SpellCheck",
                "RepeatedWord",
                "InconsistentTagContent",
                "EmptyTagContent",
                "Malformed",
                "ForbiddenTerm",
                "NewerAtLowerLevel",
                "LeadingAndTrailingSpaces",
                "LeadingSpaces",
                "TrailingSpaces",
                "TargetSourceIdentical",
                "SourceOrTargetRegexp",
                "UnmodifiedFuzzyTranslation",
                "UnmodifiedFuzzyTranslationTM",
                "UnmodifiedFuzzyTranslationMTNT",
                "Moravia",
                "ExtraNumbersV3",
                "UnresolvedConversation",
                "NestedTags",
                "FuzzyInconsistencyTargetSource",
                "FuzzyInconsistencySourceTarget",
                "CustomQA",
                "MissingNonTranslatableAnnotation"
              ]
            }
          }
        }
      },
      "Request_body_for_adding_target_languages_to_a_project": {
        "type": "object",
        "properties": {
          "targetLangs": {
            "type": "array",
            "description": "One or more target language codes to add; at least one required",
            "items": {
              "type": "string"
            },
            "maxItems": 2147483647,
            "minItems": 1
          }
        }
      },
      "Request_body_for_assigning_a_vendor_to_a_project_send_an_empty_body_to_unassign": {
        "type": "object",
        "properties": {
          "dateDue": {
            "type": "string",
            "format": "date-time",
            "description": "Due date visible to the vendor; null if not set"
          },
          "vendor": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "Request_body_for_setting_project_financial_settings": {
        "type": "object",
        "properties": {
          "netRateScheme": {
            "$ref": "#/components/schemas/IdReference"
          },
          "priceList": {
            "$ref": "#/components/schemas/IdReference"
          }
        }
      },
      "Templates_that_can_be_applied_to_the_project": {
        "type": "object",
        "properties": {
          "assignableTemplates": {
            "type": "array",
            "description": "Templates compatible with the project's source language, target languages, and workflow steps",
            "items": {
              "$ref": "#/components/schemas/ProjectTemplateDto"
            }
          }
        }
      }
    }
  }
}