{
  "openapi": "3.1.0",
  "info": {
    "title": "Localisync Translation Assistance",
    "version": "1.0.0",
    "description": "Workspace-owned provider credentials, bounded jobs, reviewed suggestions and atomic Missing-only application."
  },
  "paths": {
    "/api/v1/translation-provider-catalog": {
      "get": {
        "operationId": "getTranslationProviderCatalog",
        "summary": "Read reviewed provider, model and language capabilities",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Catalog"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers": {
      "get": {
        "operationId": "listTranslationProviders",
        "summary": "List safe workspace connection metadata",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 25,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionPage"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createTranslationProvider",
        "summary": "Encrypt and create a workspace provider connection",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/{id}": {
      "get": {
        "operationId": "getTranslationProvider",
        "summary": "Read connection settings (Owner/Admin)",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "operationId": "updateTranslationProvider",
        "summary": "Change settings, limits or enabled state",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "removeTranslationProvider",
        "summary": "Remove the local connection and ciphertext",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Version"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/{id}/credential": {
      "post": {
        "operationId": "replaceTranslationProviderCredential",
        "summary": "Replace an encrypted provider credential",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CredentialReplace"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Connection"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/{id}/usage": {
      "get": {
        "operationId": "getTranslationProviderUsage",
        "summary": "Read UTC usage and configured limits",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Usage"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/{id}/test": {
      "post": {
        "operationId": "previewTranslationProviderTest",
        "summary": "Prepare a fixed sample test for cost approval",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs": {
      "post": {
        "operationId": "createTranslationAssistancePreview",
        "summary": "Capture a fixed Missing-only preview",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Scope"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "get": {
        "operationId": "listTranslationAssistanceJobs",
        "summary": "List accessible jobs",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 25,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPage"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/suggestions/{itemId}": {
      "patch": {
        "operationId": "editTranslationSuggestion",
        "summary": "Validate and save a versioned proposal",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuggestionUpdate"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Suggestion"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/suggestions/{itemId}/context": {
      "patch": {
        "operationId": "selectTranslationProviderContext",
        "summary": "Select frozen context before approving generation",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContextSelection"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/apply": {
      "post": {
        "operationId": "applyTranslationSuggestions",
        "summary": "Atomically apply selected Missing suggestions",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Apply"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApplyResult"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}": {
      "get": {
        "operationId": "getTranslationAssistanceJob",
        "summary": "Read job status and frozen scope",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/suggestions": {
      "get": {
        "operationId": "listTranslationAssistanceSuggestions",
        "summary": "Read paginated proposals and current content",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 25,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuggestionPage"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/generate": {
      "post": {
        "operationId": "generateTranslationAssistanceJob",
        "summary": "Approve bounded provider usage",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Approval"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/retry": {
      "post": {
        "operationId": "retryTranslationAssistanceJob",
        "summary": "Approve bounded provider usage",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Approval"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/projects/{projectId}/branches/{branchId}/translation-assistance/jobs/{id}/cancel": {
      "post": {
        "operationId": "cancelTranslationAssistanceJob",
        "summary": "Stop future provider calls",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "branchId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Version"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/test-jobs": {
      "get": {
        "operationId": "listTranslationProviderTestJobs",
        "summary": "List accessible jobs",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 25,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobPage"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/test-jobs/{id}": {
      "get": {
        "operationId": "getTranslationProviderTestJob",
        "summary": "Read job status and frozen scope",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/test-jobs/{id}/suggestions": {
      "get": {
        "operationId": "listTranslationProviderTestSuggestions",
        "summary": "Read paginated proposals and current content",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 25,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuggestionPage"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/test-jobs/{id}/generate": {
      "post": {
        "operationId": "generateTranslationProviderTestJob",
        "summary": "Approve bounded provider usage",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Approval"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/test-jobs/{id}/retry": {
      "post": {
        "operationId": "retryTranslationProviderTestJob",
        "summary": "Approve bounded provider usage",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Approval"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/workspaces/{workspaceId}/translation-providers/test-jobs/{id}/cancel": {
      "post": {
        "operationId": "cancelTranslationProviderTestJob",
        "summary": "Stop future provider calls",
        "description": "Current workspace membership is required. Owner/Admin manage connections and all jobs; Editors can select safe connection metadata and manage their own jobs. Viewers cannot use assistance. Explicit branch scope, Missing-only targets and active languages are enforced. Preview/suggestions expire after 24 hours. Source text is sent only after usage approval; uncertain paid calls require explicit retry approval. UTC counters cover only Localisync use. All responses are no-store.",
        "security": [
          {
            "sessionCookie": []
          }
        ],
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "X-CSRF-Token",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Origin",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Version"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Operation confirmed. Generation is asynchronous; proposals do not change translations until explicit Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "400": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Stale scope/version, archived content or idempotency conflict. No partial Apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Request rejected. Safe reference is provided; provider bodies and credentials are omitted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; usable translations and existing delivery are unaffected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Connection": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "openai",
              "gemini",
              "google",
              "deepl"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[^\\p{Cc}]+$"
          },
          "model": {
            "default": "",
            "type": "string",
            "maxLength": 100
          },
          "account": {
            "default": null,
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "free",
                  "pro"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "billingDeclared": {
            "default": false,
            "type": "boolean"
          },
          "limits": {
            "type": "object",
            "properties": {
              "dailyJobs": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "dailyCalls": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100000
              },
              "dailyUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "jobUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "outputTokens": {
                "type": "integer",
                "minimum": 256,
                "maximum": 32768
              }
            },
            "required": [
              "dailyJobs",
              "dailyCalls",
              "dailyUnits",
              "jobUnits",
              "outputTokens"
            ],
            "additionalProperties": false
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "enabled": {
            "type": "boolean"
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "secretVersion": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "changedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "removedAt": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "provider",
          "name",
          "limits",
          "id",
          "workspaceId",
          "enabled",
          "version",
          "secretVersion",
          "createdAt",
          "changedAt",
          "removedAt"
        ],
        "additionalProperties": false
      },
      "ConnectionPage": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "provider": {
                  "type": "string",
                  "enum": [
                    "openai",
                    "gemini",
                    "google",
                    "deepl"
                  ]
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100,
                  "pattern": "^[^\\p{Cc}]+$"
                },
                "model": {
                  "default": "",
                  "type": "string",
                  "maxLength": 100
                },
                "account": {
                  "default": null,
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "free",
                        "pro"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "billingDeclared": {
                  "default": false,
                  "type": "boolean"
                },
                "limits": {
                  "type": "object",
                  "properties": {
                    "dailyJobs": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 10000
                    },
                    "dailyCalls": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 100000
                    },
                    "dailyUnits": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 1000000000
                    },
                    "jobUnits": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 1000000000
                    },
                    "outputTokens": {
                      "type": "integer",
                      "minimum": 256,
                      "maximum": 32768
                    }
                  },
                  "required": [
                    "dailyJobs",
                    "dailyCalls",
                    "dailyUnits",
                    "jobUnits",
                    "outputTokens"
                  ],
                  "additionalProperties": false
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "enabled": {
                  "type": "boolean"
                },
                "version": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "secretVersion": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                "changedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                "removedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "provider",
                "name",
                "limits",
                "id",
                "workspaceId",
                "enabled",
                "version",
                "secretVersion",
                "createdAt",
                "changedAt",
                "removedAt"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "hasMore": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "page",
          "pageSize",
          "hasMore"
        ]
      },
      "ConnectionInput": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "openai",
              "gemini",
              "google",
              "deepl"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[^\\p{Cc}]+$"
          },
          "model": {
            "default": "",
            "type": "string",
            "maxLength": 100
          },
          "account": {
            "default": null,
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "free",
                  "pro"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "billingDeclared": {
            "default": false,
            "type": "boolean"
          },
          "limits": {
            "type": "object",
            "properties": {
              "dailyJobs": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "dailyCalls": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100000
              },
              "dailyUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "jobUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "outputTokens": {
                "type": "integer",
                "minimum": 256,
                "maximum": 32768
              }
            },
            "required": [
              "dailyJobs",
              "dailyCalls",
              "dailyUnits",
              "jobUnits",
              "outputTokens"
            ],
            "additionalProperties": false
          },
          "credential": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8000,
            "pattern": "^[\\x21-\\x7e]+$",
            "writeOnly": true,
            "description": "Provider credential. Never returned or stored as plaintext. Do not place it in browser storage or logs."
          }
        },
        "required": [
          "provider",
          "name",
          "limits",
          "credential"
        ],
        "additionalProperties": false
      },
      "ConnectionUpdate": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string",
            "enum": [
              "openai",
              "gemini",
              "google",
              "deepl"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[^\\p{Cc}]+$"
          },
          "model": {
            "default": "",
            "type": "string",
            "maxLength": 100
          },
          "account": {
            "default": null,
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "free",
                  "pro"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "billingDeclared": {
            "default": false,
            "type": "boolean"
          },
          "limits": {
            "type": "object",
            "properties": {
              "dailyJobs": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "dailyCalls": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100000
              },
              "dailyUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "jobUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "outputTokens": {
                "type": "integer",
                "minimum": 256,
                "maximum": 32768
              }
            },
            "required": [
              "dailyJobs",
              "dailyCalls",
              "dailyUnits",
              "jobUnits",
              "outputTokens"
            ],
            "additionalProperties": false
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "enabled": {
            "type": "boolean"
          }
        },
        "required": [
          "provider",
          "name",
          "limits",
          "version",
          "enabled"
        ],
        "additionalProperties": false
      },
      "CredentialReplace": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "credential": {
            "type": "string",
            "minLength": 8,
            "maxLength": 8000,
            "pattern": "^[\\x21-\\x7e]+$",
            "writeOnly": true,
            "description": "Provider credential. Never returned or stored as plaintext. Do not place it in browser storage or logs."
          }
        },
        "required": [
          "version",
          "credential"
        ],
        "additionalProperties": false
      },
      "Usage": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "number"
          },
          "calls": {
            "type": "number"
          },
          "reserved": {
            "type": "number"
          },
          "actual": {
            "type": "number"
          },
          "unknown": {
            "type": "number"
          },
          "limits": {
            "type": "object",
            "properties": {
              "dailyJobs": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "dailyCalls": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100000
              },
              "dailyUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "jobUnits": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1000000000
              },
              "outputTokens": {
                "type": "integer",
                "minimum": 256,
                "maximum": 32768
              }
            },
            "required": [
              "dailyJobs",
              "dailyCalls",
              "dailyUnits",
              "jobUnits",
              "outputTokens"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "jobs",
          "calls",
          "reserved",
          "actual",
          "unknown",
          "limits"
        ]
      },
      "Scope": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "context": {
            "type": "object",
            "properties": {
              "description": {
                "default": true,
                "type": "boolean"
              },
              "notes": {
                "default": true,
                "type": "boolean"
              },
              "glossary": {
                "default": true,
                "type": "boolean"
              },
              "memory": {
                "default": true,
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "sourceLocale": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "targetLocales": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            }
          },
          "keyIds": {
            "maxItems": 10000,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          },
          "q": {
            "default": "",
            "type": "string",
            "maxLength": 200
          },
          "includeTags": {
            "default": [],
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          },
          "excludeTags": {
            "default": [],
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          },
          "timeField": {
            "type": "string",
            "enum": [
              "key_created",
              "source_changed"
            ]
          },
          "from": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "until": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "timeZone": {
            "default": "UTC",
            "type": "string",
            "maxLength": 100
          }
        },
        "required": [
          "connectionId",
          "sourceLocale",
          "targetLocales"
        ],
        "additionalProperties": false
      },
      "Job": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "workspaceId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "projectId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          },
          "branchId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          },
          "actorId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "connectionId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "connectionVersion": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "secretVersion": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "provider": {
            "type": "string",
            "enum": [
              "openai",
              "gemini",
              "google",
              "deepl"
            ]
          },
          "model": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "test",
              "translation"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "preview",
              "queued",
              "generating",
              "review",
              "partial",
              "outcome_unknown",
              "cancelled",
              "expired",
              "completed",
              "failed",
              "conflict",
              "limited"
            ]
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "sourceLocale": {
            "type": "string"
          },
          "options": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "connectionId": {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "context": {
                    "type": "object",
                    "properties": {
                      "description": {
                        "default": true,
                        "type": "boolean"
                      },
                      "notes": {
                        "default": true,
                        "type": "boolean"
                      },
                      "glossary": {
                        "default": true,
                        "type": "boolean"
                      },
                      "memory": {
                        "default": true,
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  },
                  "sourceLocale": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "targetLocales": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    }
                  },
                  "keyIds": {
                    "maxItems": 10000,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "q": {
                    "default": "",
                    "type": "string",
                    "maxLength": 200
                  },
                  "includeTags": {
                    "default": [],
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "excludeTags": {
                    "default": [],
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "timeField": {
                    "type": "string",
                    "enum": [
                      "key_created",
                      "source_changed"
                    ]
                  },
                  "from": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  "until": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  "timeZone": {
                    "default": "UTC",
                    "type": "string",
                    "maxLength": 100
                  }
                },
                "required": [
                  "connectionId",
                  "sourceLocale",
                  "targetLocales"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "summary": {
            "type": "object",
            "properties": {
              "keys": {
                "type": "number"
              },
              "cells": {
                "type": "number"
              },
              "filled": {
                "type": "number"
              },
              "missingSource": {
                "type": "number"
              },
              "unknownDate": {
                "type": "number"
              },
              "incompatible": {
                "type": "number"
              },
              "estimatedUnits": {
                "type": "number"
              }
            },
            "required": [
              "keys",
              "cells",
              "filled",
              "missingSource",
              "unknownDate",
              "incompatible",
              "estimatedUnits"
            ]
          },
          "errorCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "reservedUnits": {
            "type": "number"
          },
          "actualUnits": {
            "type": "number"
          },
          "unknownUnits": {
            "type": "number"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "projectId",
          "branchId",
          "actorId",
          "connectionId",
          "connectionVersion",
          "secretVersion",
          "provider",
          "model",
          "kind",
          "state",
          "version",
          "sourceLocale",
          "options",
          "summary",
          "errorCode",
          "reservedUnits",
          "actualUnits",
          "unknownUnits",
          "createdAt",
          "expiresAt"
        ]
      },
      "JobPage": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "workspaceId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "projectId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "branchId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "actorId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "connectionId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "connectionVersion": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "secretVersion": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "provider": {
                  "type": "string",
                  "enum": [
                    "openai",
                    "gemini",
                    "google",
                    "deepl"
                  ]
                },
                "model": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "test",
                    "translation"
                  ]
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "preview",
                    "queued",
                    "generating",
                    "review",
                    "partial",
                    "outcome_unknown",
                    "cancelled",
                    "expired",
                    "completed",
                    "failed",
                    "conflict",
                    "limited"
                  ]
                },
                "version": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "sourceLocale": {
                  "type": "string"
                },
                "options": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "connectionId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "context": {
                          "type": "object",
                          "properties": {
                            "description": {
                              "default": true,
                              "type": "boolean"
                            },
                            "notes": {
                              "default": true,
                              "type": "boolean"
                            },
                            "glossary": {
                              "default": true,
                              "type": "boolean"
                            },
                            "memory": {
                              "default": true,
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": false
                        },
                        "sourceLocale": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        },
                        "targetLocales": {
                          "minItems": 1,
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          }
                        },
                        "keyIds": {
                          "maxItems": 10000,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          }
                        },
                        "q": {
                          "default": "",
                          "type": "string",
                          "maxLength": 200
                        },
                        "includeTags": {
                          "default": [],
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          }
                        },
                        "excludeTags": {
                          "default": [],
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          }
                        },
                        "timeField": {
                          "type": "string",
                          "enum": [
                            "key_created",
                            "source_changed"
                          ]
                        },
                        "from": {
                          "type": "string",
                          "format": "date-time",
                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "until": {
                          "type": "string",
                          "format": "date-time",
                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                        },
                        "timeZone": {
                          "default": "UTC",
                          "type": "string",
                          "maxLength": 100
                        }
                      },
                      "required": [
                        "connectionId",
                        "sourceLocale",
                        "targetLocales"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "summary": {
                  "type": "object",
                  "properties": {
                    "keys": {
                      "type": "number"
                    },
                    "cells": {
                      "type": "number"
                    },
                    "filled": {
                      "type": "number"
                    },
                    "missingSource": {
                      "type": "number"
                    },
                    "unknownDate": {
                      "type": "number"
                    },
                    "incompatible": {
                      "type": "number"
                    },
                    "estimatedUnits": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "keys",
                    "cells",
                    "filled",
                    "missingSource",
                    "unknownDate",
                    "incompatible",
                    "estimatedUnits"
                  ]
                },
                "errorCode": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reservedUnits": {
                  "type": "number"
                },
                "actualUnits": {
                  "type": "number"
                },
                "unknownUnits": {
                  "type": "number"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                "expiresAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                }
              },
              "required": [
                "id",
                "workspaceId",
                "projectId",
                "branchId",
                "actorId",
                "connectionId",
                "connectionVersion",
                "secretVersion",
                "provider",
                "model",
                "kind",
                "state",
                "version",
                "sourceLocale",
                "options",
                "summary",
                "errorCode",
                "reservedUnits",
                "actualUnits",
                "unknownUnits",
                "createdAt",
                "expiresAt"
              ]
            }
          },
          "page": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "hasMore": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "page",
          "pageSize",
          "hasMore"
        ]
      },
      "ContextSelection": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "selected": {
            "maxItems": 161,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 220
            }
          }
        },
        "required": [
          "version",
          "selected"
        ],
        "additionalProperties": false
      },
      "Suggestion": {
        "type": "object",
        "properties": {
          "context": {
            "maxItems": 161,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 220
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "description",
                    "note",
                    "glossary",
                    "memory",
                    "image"
                  ]
                },
                "selected": {
                  "type": "boolean"
                },
                "text": {
                  "type": "string",
                  "maxLength": 1000000
                },
                "image": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "size": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 10485760
                    },
                    "hash": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    },
                    "width": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "height": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "resolution": {
                      "type": "string",
                      "const": "high"
                    }
                  },
                  "required": [
                    "id",
                    "size",
                    "hash",
                    "width",
                    "height",
                    "resolution"
                  ],
                  "additionalProperties": false
                },
                "reference": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "entryId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "entryVersion": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "resourceId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "resourceVersion": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "linksVersion": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "entryId",
                        "entryVersion",
                        "resourceId",
                        "resourceVersion",
                        "linksVersion"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "kind",
                "selected",
                "text",
                "reference"
              ],
              "additionalProperties": false
            }
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "jobId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "keyId": {
            "anyOf": [
              {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          },
          "definition": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "format": {
                "type": "string",
                "enum": [
                  "plain",
                  "icu"
                ]
              },
              "parameters": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "text",
                        "number"
                      ]
                    }
                  },
                  "required": [
                    "name",
                    "type"
                  ]
                }
              }
            },
            "required": [
              "name",
              "format",
              "parameters"
            ]
          },
          "keyVersion": {
            "type": "number"
          },
          "sourceVersion": {
            "type": "number"
          },
          "targetVersion": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "sourceLocale": {
            "type": "string"
          },
          "locale": {
            "type": "string"
          },
          "suggestion": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "pending",
              "sending",
              "ready",
              "invalid",
              "unknown",
              "applied"
            ]
          },
          "issue": {
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "current": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "keyVersion": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "source": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "target": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "sourceVersion": {
                    "type": "number"
                  },
                  "targetVersion": {
                    "type": "number"
                  },
                  "editable": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "name",
                  "keyVersion",
                  "source",
                  "target",
                  "sourceVersion",
                  "targetVersion",
                  "editable"
                ]
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "context",
          "id",
          "jobId",
          "keyId",
          "definition",
          "keyVersion",
          "sourceVersion",
          "targetVersion",
          "source",
          "sourceLocale",
          "locale",
          "suggestion",
          "state",
          "issue",
          "version"
        ]
      },
      "SuggestionPage": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "context": {
                  "maxItems": 161,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 220
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "description",
                          "note",
                          "glossary",
                          "memory",
                          "image"
                        ]
                      },
                      "selected": {
                        "type": "boolean"
                      },
                      "text": {
                        "type": "string",
                        "maxLength": 1000000
                      },
                      "image": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "size": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 10485760
                          },
                          "hash": {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          "width": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "height": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "resolution": {
                            "type": "string",
                            "const": "high"
                          }
                        },
                        "required": [
                          "id",
                          "size",
                          "hash",
                          "width",
                          "height",
                          "resolution"
                        ],
                        "additionalProperties": false
                      },
                      "reference": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "entryId": {
                                "type": "string",
                                "format": "uuid",
                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                              },
                              "entryVersion": {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              },
                              "resourceId": {
                                "type": "string",
                                "format": "uuid",
                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                              },
                              "resourceVersion": {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              },
                              "linksVersion": {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "entryId",
                              "entryVersion",
                              "resourceId",
                              "resourceVersion",
                              "linksVersion"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "kind",
                      "selected",
                      "text",
                      "reference"
                    ],
                    "additionalProperties": false
                  }
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "jobId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "keyId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "definition": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "plain",
                        "icu"
                      ]
                    },
                    "parameters": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "text",
                              "number"
                            ]
                          }
                        },
                        "required": [
                          "name",
                          "type"
                        ]
                      }
                    }
                  },
                  "required": [
                    "name",
                    "format",
                    "parameters"
                  ]
                },
                "keyVersion": {
                  "type": "number"
                },
                "sourceVersion": {
                  "type": "number"
                },
                "targetVersion": {
                  "type": "number"
                },
                "source": {
                  "type": "string"
                },
                "sourceLocale": {
                  "type": "string"
                },
                "locale": {
                  "type": "string"
                },
                "suggestion": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "sending",
                    "ready",
                    "invalid",
                    "unknown",
                    "applied"
                  ]
                },
                "issue": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "version": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "current": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "keyVersion": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "source": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "target": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "sourceVersion": {
                          "type": "number"
                        },
                        "targetVersion": {
                          "type": "number"
                        },
                        "editable": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "name",
                        "keyVersion",
                        "source",
                        "target",
                        "sourceVersion",
                        "targetVersion",
                        "editable"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "context",
                "id",
                "jobId",
                "keyId",
                "definition",
                "keyVersion",
                "sourceVersion",
                "targetVersion",
                "source",
                "sourceLocale",
                "locale",
                "suggestion",
                "state",
                "issue",
                "version"
              ]
            }
          },
          "page": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "hasMore": {
            "type": "boolean"
          }
        },
        "required": [
          "items",
          "page",
          "pageSize",
          "hasMore"
        ]
      },
      "Version": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "version"
        ],
        "additionalProperties": false
      },
      "Approval": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "approved": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "version",
          "approved"
        ],
        "additionalProperties": false
      },
      "SuggestionUpdate": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "value": {
            "type": "string",
            "maxLength": 16384
          }
        },
        "required": [
          "version",
          "value"
        ],
        "additionalProperties": false
      },
      "Apply": {
        "type": "object",
        "properties": {
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "approved": {
            "type": "boolean",
            "const": true
          },
          "ids": {
            "minItems": 1,
            "maxItems": 50000,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          },
          "except": {
            "default": [],
            "maxItems": 50000,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            }
          }
        },
        "required": [
          "version",
          "approved"
        ],
        "additionalProperties": false
      },
      "ApplyResult": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "workspaceId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "projectId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "branchId": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "actorId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "connectionId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "connectionVersion": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "secretVersion": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "provider": {
                "type": "string",
                "enum": [
                  "openai",
                  "gemini",
                  "google",
                  "deepl"
                ]
              },
              "model": {
                "type": "string"
              },
              "kind": {
                "type": "string",
                "enum": [
                  "test",
                  "translation"
                ]
              },
              "state": {
                "type": "string",
                "enum": [
                  "preview",
                  "queued",
                  "generating",
                  "review",
                  "partial",
                  "outcome_unknown",
                  "cancelled",
                  "expired",
                  "completed",
                  "failed",
                  "conflict",
                  "limited"
                ]
              },
              "version": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "sourceLocale": {
                "type": "string"
              },
              "options": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "connectionId": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "context": {
                        "type": "object",
                        "properties": {
                          "description": {
                            "default": true,
                            "type": "boolean"
                          },
                          "notes": {
                            "default": true,
                            "type": "boolean"
                          },
                          "glossary": {
                            "default": true,
                            "type": "boolean"
                          },
                          "memory": {
                            "default": true,
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      },
                      "sourceLocale": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "targetLocales": {
                        "minItems": 1,
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 100
                        }
                      },
                      "keyIds": {
                        "maxItems": 10000,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "q": {
                        "default": "",
                        "type": "string",
                        "maxLength": 200
                      },
                      "includeTags": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "excludeTags": {
                        "default": [],
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "timeField": {
                        "type": "string",
                        "enum": [
                          "key_created",
                          "source_changed"
                        ]
                      },
                      "from": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      "until": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                      },
                      "timeZone": {
                        "default": "UTC",
                        "type": "string",
                        "maxLength": 100
                      }
                    },
                    "required": [
                      "connectionId",
                      "sourceLocale",
                      "targetLocales"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "summary": {
                "type": "object",
                "properties": {
                  "keys": {
                    "type": "number"
                  },
                  "cells": {
                    "type": "number"
                  },
                  "filled": {
                    "type": "number"
                  },
                  "missingSource": {
                    "type": "number"
                  },
                  "unknownDate": {
                    "type": "number"
                  },
                  "incompatible": {
                    "type": "number"
                  },
                  "estimatedUnits": {
                    "type": "number"
                  }
                },
                "required": [
                  "keys",
                  "cells",
                  "filled",
                  "missingSource",
                  "unknownDate",
                  "incompatible",
                  "estimatedUnits"
                ]
              },
              "errorCode": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "reservedUnits": {
                "type": "number"
              },
              "actualUnits": {
                "type": "number"
              },
              "unknownUnits": {
                "type": "number"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "workspaceId",
              "projectId",
              "branchId",
              "actorId",
              "connectionId",
              "connectionVersion",
              "secretVersion",
              "provider",
              "model",
              "kind",
              "state",
              "version",
              "sourceLocale",
              "options",
              "summary",
              "errorCode",
              "reservedUnits",
              "actualUnits",
              "unknownUnits",
              "createdAt",
              "expiresAt"
            ]
          },
          "applied": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "job",
          "applied"
        ]
      },
      "Success": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "success"
        ]
      },
      "Catalog": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "providers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "enum": [
                    "openai",
                    "gemini",
                    "google",
                    "deepl"
                  ]
                },
                "name": {
                  "type": "string"
                },
                "models": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "accounts": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "icu": {
                  "type": "string"
                },
                "locales": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "unit": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "name",
                "models",
                "accounts",
                "icu",
                "locales",
                "unit"
              ]
            }
          }
        },
        "required": [
          "version",
          "providers"
        ]
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "field": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "field",
                "message"
              ]
            }
          },
          "requestId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "error",
          "message",
          "requestId"
        ]
      }
    },
    "securitySchemes": {
      "sessionCookie": {
        "type": "apiKey",
        "in": "cookie",
        "name": "__Host-localisync-session"
      }
    }
  }
}
