{
  "openapi": "3.1.0",
  "info": {
    "title": "Orders API",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://au.api.orders.ai.media",
      "description": "Australia endpoint"
    },
    {
      "url": "https://eu.api.orders.ai.media",
      "description": "Europe endpoint"
    },
    {
      "url": "https://us.api.orders.ai.media",
      "description": "United States endpoint"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      },
      "JWT": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "ResponseBodyWithMessage": {
        "description": "Simple API response with a \"message\" property",
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ]
      },
      "GetOrderDetailsOutput": {
        "type": "object",
        "properties": {
          "orderItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrderDetailsOutputItem"
            }
          },
          "dateCreated": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "statusFinalisedTime": {
            "type": "string"
          },
          "translationLanguagesDisplayNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "platform": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "externalIntegrationId": {
            "description": "The same value previously passed in as externalIntegrationId when creating the order.",
            "type": "string"
          },
          "externalIntegrationData": {
            "description": "The same value previously passed in as externalIntegrationData when creating the order.",
            "type": "object",
            "properties": {},
            "additionalProperties": {}
          },
          "customerInstructions": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "orderReference": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "creatorUserId": {
            "type": "string"
          },
          "creatorUserEmail": {
            "type": "string"
          },
          "creatorUserFullName": {
            "type": "string"
          },
          "translationLanguages": {
            "description": "Additional languages the output needs to be translated into.\nIt only applies to orders that generate text/captions outputs.",
            "type": "array",
            "items": {
              "enum": [
                "af",
                "am",
                "ar",
                "az",
                "bg",
                "bn",
                "bs",
                "ca",
                "cs",
                "cy",
                "da",
                "de",
                "el",
                "en",
                "es",
                "es-MX",
                "et",
                "fa-AF",
                "fas",
                "fi",
                "fil-PH",
                "fr",
                "fr-CA",
                "ga",
                "gu",
                "ha",
                "he",
                "hi",
                "hr",
                "ht",
                "hu",
                "hy",
                "id",
                "is",
                "it",
                "ja",
                "ka",
                "kk",
                "kn",
                "ko",
                "lt",
                "lv",
                "mk",
                "ml",
                "mn",
                "mr",
                "ms",
                "mt",
                "nb",
                "nl",
                "pa",
                "pl",
                "ps",
                "pt-BR",
                "pt-PT",
                "ro",
                "ru",
                "si",
                "sk",
                "sl",
                "so-SO",
                "sq",
                "sr",
                "sv",
                "sw",
                "ta",
                "te",
                "th",
                "tr",
                "uk",
                "ur",
                "uz",
                "vi",
                "zh",
                "zh-TW"
              ],
              "type": "string"
            }
          },
          "videoIntroduction": {
            "description": "Introduction/summary of the input video.\nIt is used by Lexi AD orders but can also be used by other order types.",
            "type": "string"
          },
          "audioDescription": {
            "description": "Options specific to audio description.",
            "$ref": "#/components/schemas/AudioDescriptionOptions"
          },
          "outputOptions": {
            "description": "Options for controlling how the output files will be generated",
            "$ref": "#/components/schemas/OrderOutputOptions"
          }
        },
        "required": [
          "dateCreated",
          "id",
          "orderItems",
          "orderReference",
          "platform",
          "region",
          "status"
        ]
      },
      "GetOrderDetailsOutputItem": {
        "type": "object",
        "properties": {
          "systemOrderType": {
            "description": "The order type code as defined in the system, for example, \"BasicLexi\".\nThere's another field named \"orderType\" which actually is the user friendly product title as shown in the UI.",
            "type": "string"
          },
          "bookedDuration": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "dueDate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "priority": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "actionsRequired": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PendingAction"
            }
          },
          "inputLanguageDisplayName": {
            "type": "string"
          },
          "outputLanguageDisplayName": {
            "type": "string"
          },
          "outputLanguagesDisplayNames": {
            "description": "Display names of the output languages.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "translationLanguagesDisplayNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mergedOutputLanguagesAndVoicesWithDisplayNames": {
            "description": "Normalised output languages and voices including their display names.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/LanguageCode"
                },
                "name": {
                  "type": "string"
                },
                "voice": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "$ref": "#/components/schemas/VoiceCode"
                    },
                    "name": {
                      "type": "string"
                    },
                    "rate": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "code",
                    "name"
                  ]
                }
              },
              "required": [
                "code",
                "name"
              ]
            }
          },
          "outputLanguages": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/LanguageCode",
                  "description": "Output language code"
                },
                "voice": {
                  "description": "Output voice configuration for audio generation.\nIf not specified, a default voice would be used when needed.",
                  "$ref": "#/components/schemas/OutputVoice"
                }
              },
              "required": [
                "code"
              ]
            }
          },
          "statusFinalisedTime": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "customerReference": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "episodeNumber": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "episodeTitle": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "inputLanguage": {
            "type": "string"
          },
          "orderType": {
            "description": "This is the product title as shown on the UI, for example, \"AI based captioning\".\nProduct titles varies from customer to customer.\nThere's another field \"systemOrderType\" that can be used to get the order type code such like \"BasicLexi\".",
            "type": "string"
          },
          "mediaFilename": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "originalFilename": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "output": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "format": {
                  "description": "Format/type of the output",
                  "enum": [
                    "actionUrl",
                    "aitranscript",
                    "dfxp",
                    "docx",
                    "json",
                    "mcc",
                    "mp4",
                    "scc-23.976fps",
                    "scc-24fps",
                    "scc-24fps-nb",
                    "scc-25fps",
                    "scc-29.97fps-df",
                    "scc-29.97fps-ndf",
                    "scc-30fps",
                    "srt",
                    "stl",
                    "ttml",
                    "vtt",
                    "wav"
                  ],
                  "type": "string"
                },
                "role": {
                  "description": "Role of the output, indicating what this output is for.",
                  "enum": [
                    "AdAudio",
                    "AdAudioWithDucking",
                    "AdMixedInAudio",
                    "AdMixedInOriginal",
                    "AdMixedInProxy",
                    "AdScript",
                    "Captions",
                    "OpenCaptionsOriginal",
                    "OpenCaptionsProxy",
                    "PendingAction"
                  ],
                  "type": "string"
                },
                "name": {
                  "description": "Name of the output, it looks like a file name, with the file extension part most likely indicating the type of the output.",
                  "type": "string"
                },
                "url": {
                  "description": "Download URL for the output.",
                  "type": "string"
                },
                "language": {
                  "description": "Language of the output.",
                  "type": "string"
                },
                "fileId": {
                  "description": "Unique ID of the output.",
                  "type": "string"
                },
                "size": {
                  "description": "File size in bytes.",
                  "type": "number"
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "outputUrl": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "outputLanguage": {
            "type": "string"
          },
          "seriesName": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "seriesNumber": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "supportMaterials": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportMaterial"
            }
          },
          "turnaround": {
            "type": "number"
          },
          "transmissionDate": {
            "description": "Episode transmission date in ISO-8601 format",
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "bookedDuration",
          "dueDate",
          "id",
          "inputLanguage",
          "orderType",
          "output",
          "outputLanguage",
          "outputUrl",
          "priority",
          "status",
          "systemOrderType",
          "turnaround"
        ]
      },
      "PendingAction": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "role": {
            "type": "array",
            "items": {
              "enum": [
                "coordinator",
                "customer-management",
                "super-coord",
                "user"
              ],
              "type": "string"
            }
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "role",
          "url"
        ]
      },
      "LanguageCode": {
        "description": "This file is auto-generated using the data from languages.csv.\nPlease do not modify this file directly.\nTo re-generate this file, run the following command from the root directory of this repo:\n\n    npm run generate-languages\n\nAny changes made to this file will be overwritten when the file is re-generated.",
        "enum": [
          "af",
          "am",
          "ar",
          "az",
          "ba",
          "be",
          "bg",
          "bn",
          "bn-BD",
          "bn-IN",
          "bo",
          "bs",
          "ca",
          "cmn",
          "cmn-Hans",
          "cmn-Hant",
          "cmnBilingualEn",
          "cs",
          "cy",
          "da",
          "de",
          "de-CH",
          "de-DE",
          "el",
          "el-GR",
          "en",
          "en-AU",
          "en-CA",
          "en-GB",
          "en-IN",
          "en-US",
          "enFinance",
          "eo",
          "es",
          "es-419",
          "es-ES",
          "es-MX",
          "es-US",
          "esBilingualEn",
          "et",
          "eu",
          "fa-AF",
          "fas",
          "fi",
          "fil-PH",
          "fr",
          "fr-CA",
          "fr-FR",
          "ga",
          "gd",
          "gl",
          "gu",
          "ha",
          "hak",
          "he",
          "hi",
          "hi-IN",
          "hr",
          "ht",
          "hu",
          "hy",
          "ia",
          "id",
          "is",
          "it",
          "ja",
          "ji",
          "jv",
          "ka",
          "kk",
          "km",
          "km-KH",
          "kn",
          "ko",
          "ks",
          "ku",
          "lb",
          "lo",
          "lt",
          "lv",
          "mk",
          "ml",
          "mn",
          "mr",
          "ms",
          "ms-MY",
          "msBilingualEn",
          "mt",
          "multilingualCmnEnMsTa",
          "my",
          "nan",
          "nb",
          "nb-NO",
          "ne",
          "nl",
          "nl-BE",
          "nl-NL",
          "nn",
          "no",
          "or",
          "pa",
          "per",
          "pl",
          "prs",
          "ps",
          "pt",
          "pt-BR",
          "pt-PT",
          "quz",
          "ro",
          "rom",
          "ru",
          "sd-IN",
          "si",
          "sk",
          "sl",
          "so-SO",
          "sq",
          "sr",
          "sv",
          "sw",
          "syl",
          "ta",
          "ta-IN",
          "ta-LK",
          "ta-MY",
          "ta-SG",
          "taBilingualEn",
          "te",
          "tg",
          "th",
          "tl",
          "tr",
          "ug",
          "uk",
          "ur",
          "ur-PK",
          "uz",
          "vi",
          "wu",
          "xh",
          "yo",
          "yue",
          "zh",
          "zh-CN",
          "zh-CN-shandong",
          "zh-CN-sichuan",
          "zh-HK",
          "zh-Hans",
          "zh-Hant",
          "zh-TW",
          "zu"
        ],
        "type": "string"
      },
      "VoiceCode": {
        "description": "This file is auto-generated using the data from voices.csv.\nPlease do not modify this file directly.\nTo re-generate this file, run the following command from the root directory of this repo:\n\n    npm run generate-voices\n\nAny changes made to this file will be overwritten when the file is re-generated.",
        "enum": [
          "bn-bd-nabanita",
          "bn-bd-pradeep",
          "bn-in-bashkar",
          "bn-in-tanishaa",
          "de-de-amala",
          "de-de-bernd",
          "de-de-christoph",
          "de-de-conrad",
          "de-de-elke",
          "de-de-florian",
          "de-de-katja",
          "de-de-seraphina",
          "el-gr-athina",
          "el-gr-nestoras",
          "en-au-elsie",
          "en-au-freya",
          "en-au-lee",
          "en-au-neil",
          "en-au-william",
          "en-gb-alexis",
          "en-gb-jay",
          "en-gb-joe",
          "en-gb-olivia",
          "en-gb-ryan",
          "en-gb-sonia",
          "en-us-andrew",
          "en-us-christopher",
          "en-us-emma",
          "en-us-jane",
          "en-us-stephen",
          "es-es-alvaro",
          "es-es-arnau",
          "es-es-elvira",
          "es-es-eva",
          "es-mx-dalia",
          "es-mx-jorge",
          "es-us-alberto",
          "es-us-alonso",
          "es-us-paloma",
          "fil-ph-celia",
          "fil-ph-jerry",
          "fil-ph-lyn",
          "fil-ph-manny",
          "fil-ph-nikie",
          "fr-ca-jeanne-mance",
          "fr-ca-louis",
          "fr-ca-marc",
          "fr-ca-marie",
          "fr-ca-thierry",
          "fr-fr-claire",
          "fr-fr-claude",
          "fr-fr-henri",
          "hi-in-aarav",
          "hi-in-arjun",
          "hi-in-niraj",
          "hi-in-ranga",
          "hi-in-viraj",
          "id-id-ardi",
          "id-id-gadis",
          "it-it-alessio",
          "it-it-elsa",
          "it-it-giuseppe",
          "it-it-isabella",
          "it-it-marcello",
          "ja-jp-daichi",
          "ja-jp-nanami",
          "ja-jp-shiori",
          "ko-kr-bongjin",
          "ko-kr-injoon",
          "ko-kr-sunhi",
          "mr-in-aarohi",
          "mr-in-manohar",
          "ms-my-osman",
          "ms-my-yasmin",
          "pt-br-antonio",
          "pt-br-brenda",
          "pt-br-francisca",
          "pt-br-humberto",
          "pt-br-julio",
          "pt-br-thalita",
          "pt-pt-duarte",
          "pt-pt-fernanda",
          "pt-pt-raquel",
          "sv-se-hillevi",
          "sv-se-mattias",
          "sv-se-sofie",
          "ta-in-pallavi",
          "ta-in-valluvar",
          "ta-lk-kumar",
          "ta-lk-saranya",
          "ta-my-kani",
          "ta-my-surya",
          "ta-sg-anbu",
          "ta-sg-venba",
          "te-in-mohan",
          "te-in-shruti",
          "th-th-achara",
          "th-th-niwat",
          "th-th-premwadee",
          "tr-tr-ahmet",
          "tr-tr-emel",
          "ur-pk-asad",
          "ur-pk-uzma",
          "vi-vn-hoaimy",
          "vi-vn-namminh",
          "yue-cn-yunsong",
          "zh-cn-xiaochen",
          "zh-cn-xiaomo",
          "zh-cn-yunjian",
          "zh-cn-yunjian-sports-commentatary",
          "zh-cn-yunyang",
          "zh-hk-hiugaai",
          "zh-hk-hiumaan",
          "zh-hk-wanlung",
          "zh-tw-chihiro",
          "zh-tw-devon",
          "zh-tw-hsiaochen",
          "zh-tw-liang"
        ],
        "type": "string"
      },
      "OutputVoice": {
        "description": "Output voice configuration for TTS generation",
        "type": "object",
        "properties": {
          "name": {
            "description": "Voice code/name used to identify the voice.\nFor accepted values, see documentation.",
            "type": "string"
          },
          "rate": {
            "description": "Indicates the speaking rate of the text.\nExpressed as a number that acts as a multiplier of the default.\nFor example, a value of 1 results in no change in the original rate.\nA value of 0.5 results in a halving of the original rate.\nA value of 2 results in twice the original rate.\nIf omitted, the default rate will be used.\nIf the value is smaller than 0.5, the rate will be clamped to 0.5.\nIf the value is larger than 2, the rate will be clamped to 2.",
            "type": "number"
          }
        },
        "required": [
          "name"
        ]
      },
      "SupportMaterial": {
        "type": "object",
        "properties": {
          "filename": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "materialUrl": {
            "type": "string"
          }
        },
        "required": [
          "materialUrl"
        ]
      },
      "AudioDescriptionOptions": {
        "type": "object",
        "properties": {
          "noSpeechInSourceMedia": {
            "description": "This flag indicates whether the source media has no speech in it.\nIf true, the system will not try to transcribe the source media.\nIf false, or not specified, and sourceTranscriptUrl is not specified, the system will try to transcribe the source media in order to find no-speech gaps for inserting audio description.\nFor specifying already existing transcript, leave this flag unspecified and pass in sourceTranscriptUrl.",
            "type": "boolean"
          },
          "minimumGapBetweenConversations": {
            "description": "Minimum gap (in milliseconds) between conversations for audio description to be inserted.\nNo-speech gaps shorter than this duration (in milliseconds) will not have audio description generated.\nIf not specified, a default value will be automatically applied.",
            "type": "number"
          },
          "maxPreConversationOverlap": {
            "description": "The maximum duration (in milliseconds) allowed for an audio description to overlap with the start of a conversation.\nIf not specified, a default value of 0 will be automatically applied.",
            "type": "number"
          },
          "maxPostConversationOverlap": {
            "description": "The maximum duration (in milliseconds) allowed for an audio description to overlap with the end of a conversation.\nIf not specified, a default value of 0 will be automatically applied.",
            "type": "number"
          }
        }
      },
      "OrderOutputOptions": {
        "description": "Options for customising the outputs that are generated when an order is fulfilled.",
        "type": "object",
        "properties": {
          "captions": {
            "type": "object",
            "properties": {
              "startTime": {
                "description": "Offset to be added to the timecodes in the captions.\nIt could be a SMPTE timecode, such like \"00:30:05;00\" // or \"00:30:05:00\", or number of milliseconds",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            }
          },
          "audioDescription": {
            "description": "Audio description specific output options",
            "type": "object",
            "properties": {
              "generateAdMixedInOriginal": {
                "description": "Whether to generate the original quality video with audio description mixed in for Lexi AD orders.\n\nWhen true: Generates both proxy-with-ad.mp4 (640px width, <=30fps) and output-with-ad.mp4 (original quality).\nWhen false: Generates only proxy-with-ad.mp4 to save processing time and cost.\n\nThe proxy output is suitable for preview/review purposes, while the original quality output\nis the final deliverable. Setting this to false can significantly reduce processing costs\nand time for workflows that only need the proxy version.\n\nIf not specified, defaults to false.",
                "type": "boolean"
              }
            }
          }
        }
      },
      "CreateOrderInput": {
        "description": "Order details accepted by the customer/external facing Orders API when creating an order.",
        "type": "object",
        "properties": {
          "platform": {
            "type": "string"
          },
          "orderItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateOrderInputItem"
            }
          },
          "notificationEmailTo": {
            "description": "Email address to send notifications to, for example \"james@example.com\"",
            "type": "string"
          },
          "notificationEmailToName": {
            "description": "Name of the recipient to send notifications to, for example \"James\"",
            "type": "string"
          },
          "customVocabularyEntries": {
            "description": "Custom vocabulary entries that could be used to improve accuracy",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomVocabularyEntry"
            }
          },
          "callbackUrl": {
            "description": "The callback URL that Ai-Media can use to notify customer the outcome of the order",
            "type": "string"
          },
          "additionalOutputFormats": {
            "description": "Formats of additional output files that should be generated when the order is fulfilled",
            "type": "array",
            "items": {
              "enum": [
                "actionUrl",
                "aitranscript",
                "dfxp",
                "docx",
                "json",
                "mcc",
                "mp4",
                "scc-23.976fps",
                "scc-24fps",
                "scc-24fps-nb",
                "scc-25fps",
                "scc-29.97fps-df",
                "scc-29.97fps-ndf",
                "scc-30fps",
                "srt",
                "stl",
                "ttml",
                "vtt",
                "wav"
              ],
              "type": "string"
            }
          },
          "outputOptions": {
            "description": "Options for controlling how the output files will be generated",
            "$ref": "#/components/schemas/OrderOutputOptions"
          },
          "externalIntegrationId": {
            "description": "An ID used for integration.\nFor example, ID of the order in an external system could be stored in this field.",
            "type": "string"
          },
          "externalIntegrationData": {
            "description": "Additional data for integration.",
            "type": "object",
            "properties": {},
            "additionalProperties": {}
          },
          "extractVocal": {
            "description": "Whether to extract the vocal part from the audio stream before transcription.\nIf not specified, the default value is false.\nIn very rare cases, enabling this flag could increase transcription accuracy, but will add additional processing time to the order.\nIn most cases, it is not necessary, and could actually decrease the transcription accuracy.",
            "type": "boolean"
          },
          "topicModelIds": {
            "description": "Topic model IDs which reference to topic models in either EEG Cloud or S3.\nFor EEG Cloud, the ID  could be the combination of an authorisation token and topic model ID.\nFor S3, the ID is the name of the Excel file without extension part.\nTopic model Excel files in S3 are synchronised from SharePoint.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "translationLanguages": {
            "description": "Additional languages the output needs to be translated into.\nIt only applies to orders that generate text/captions outputs.",
            "type": "array",
            "items": {
              "enum": [
                "af",
                "am",
                "ar",
                "az",
                "bg",
                "bn",
                "bs",
                "ca",
                "cs",
                "cy",
                "da",
                "de",
                "el",
                "en",
                "es",
                "es-MX",
                "et",
                "fa-AF",
                "fas",
                "fi",
                "fil-PH",
                "fr",
                "fr-CA",
                "ga",
                "gu",
                "ha",
                "he",
                "hi",
                "hr",
                "ht",
                "hu",
                "hy",
                "id",
                "is",
                "it",
                "ja",
                "ka",
                "kk",
                "kn",
                "ko",
                "lt",
                "lv",
                "mk",
                "ml",
                "mn",
                "mr",
                "ms",
                "mt",
                "nb",
                "nl",
                "pa",
                "pl",
                "ps",
                "pt-BR",
                "pt-PT",
                "ro",
                "ru",
                "si",
                "sk",
                "sl",
                "so-SO",
                "sq",
                "sr",
                "sv",
                "sw",
                "ta",
                "te",
                "th",
                "tr",
                "uk",
                "ur",
                "uz",
                "vi",
                "zh",
                "zh-TW"
              ],
              "type": "string"
            }
          },
          "outputFormatting": {
            "description": "Settings about the formatting of the output files.",
            "$ref": "#/components/schemas/OutputFormatting"
          },
          "substitutions": {
            "description": "Substitution list that will be applied to the captions.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Substitution"
            }
          },
          "presets": {
            "description": "Presets that will be applied to the order.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sourceTranscriptUrl": {
            "description": "URL of the source transcript. The transcript should be in SRT format.\nThis field is not used for captioning/transcribing orders.",
            "type": "string"
          },
          "videoIntroduction": {
            "description": "Introduction/summary of the input video.\nIt is used by Lexi AD orders but can also be used by other order types.",
            "type": "string"
          },
          "audioEvents": {
            "description": "Audio events to be detected.",
            "type": "array",
            "items": {
              "enum": [
                "applause",
                "laughter",
                "music"
              ],
              "type": "string"
            }
          },
          "audioDescription": {
            "description": "Options specific to audio description.",
            "$ref": "#/components/schemas/AudioDescriptionOptions"
          },
          "customerInstructions": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "customerName": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "sendCaptionsToKaltura": {
            "type": "boolean"
          },
          "salesReportingCategory": {
            "type": "string"
          }
        },
        "required": [
          "orderItems"
        ]
      },
      "CreateOrderInputItem": {
        "description": "Order item details accepted by the customer/external facing Orders API when creating an order.",
        "type": "object",
        "properties": {
          "inputLanguage": {
            "$ref": "#/components/schemas/ValidInputLanguageCode"
          },
          "turnaround": {
            "type": "number"
          },
          "outputVoice": {
            "description": "Output voice configuration for audio generation.\nIf not specified, a default voice would be used when needed.",
            "$ref": "#/components/schemas/OutputVoice"
          },
          "outputLanguages": {
            "description": "Output languages and voices.\nWhen this field is specified, values in `outputLanguage` and `outputVoice` will be merged into this field.\nIf this field is not specified or is empty, then `outputLanguage` must be provided.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/LanguageCode",
                  "description": "Output language code"
                },
                "voice": {
                  "description": "Output voice configuration for audio generation.\nIf not specified, a default voice would be used when needed.",
                  "$ref": "#/components/schemas/OutputVoice"
                }
              },
              "required": [
                "code"
              ]
            }
          },
          "priority": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "customerReference": {
            "type": "string"
          },
          "episodeNumber": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "episodeTitle": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "orderType": {
            "$ref": "#/components/schemas/OrderType"
          },
          "originalFilename": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "outputLanguage": {
            "$ref": "#/components/schemas/LanguageCode"
          },
          "seriesName": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "seriesNumber": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "supportMaterials": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SupportMaterial"
            }
          },
          "transmissionDate": {
            "description": "Episode transmission date in ISO-8601 format",
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "operationsExtraInfo": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "reserveForVendor": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "sourceMediaUrl": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "inputLanguage",
          "orderType",
          "outputLanguage"
        ]
      },
      "ValidInputLanguageCode": {
        "enum": [
          "af",
          "am",
          "ar",
          "az",
          "ba",
          "be",
          "bg",
          "bn",
          "bo",
          "bs",
          "ca",
          "cmn",
          "cmnBilingualEn",
          "cs",
          "cy",
          "da",
          "de",
          "el",
          "en",
          "en-AU",
          "en-CA",
          "en-GB",
          "en-IN",
          "en-US",
          "enFinance",
          "eo",
          "es",
          "es-419",
          "es-ES",
          "es-US",
          "esBilingualEn",
          "et",
          "eu",
          "fas",
          "fi",
          "fil-PH",
          "fr",
          "fr-CA",
          "fr-FR",
          "ga",
          "gd",
          "gl",
          "gu",
          "ha",
          "hak",
          "he",
          "hi",
          "hr",
          "ht",
          "hu",
          "hy",
          "ia",
          "id",
          "is",
          "it",
          "ja",
          "ji",
          "jv",
          "ka",
          "kk",
          "km",
          "kn",
          "ko",
          "ks",
          "ku",
          "lb",
          "lo",
          "lt",
          "lv",
          "mk",
          "ml",
          "mn",
          "mr",
          "ms",
          "msBilingualEn",
          "mt",
          "multilingualCmnEnMsTa",
          "my",
          "nan",
          "nb",
          "ne",
          "nl",
          "nl-BE",
          "nn",
          "no",
          "or",
          "pa",
          "per",
          "pl",
          "prs",
          "ps",
          "pt",
          "pt-BR",
          "pt-PT",
          "quz",
          "ro",
          "rom",
          "ru",
          "sd-IN",
          "si",
          "sk",
          "sl",
          "so-SO",
          "sq",
          "sr",
          "sv",
          "sw",
          "syl",
          "ta",
          "taBilingualEn",
          "te",
          "tg",
          "th",
          "tl",
          "tr",
          "ug",
          "uk",
          "ur",
          "uz",
          "vi",
          "wu",
          "xh",
          "yo",
          "yue",
          "zh",
          "zh-CN-shandong",
          "zh-CN-sichuan",
          "zu"
        ],
        "type": "string"
      },
      "OrderType": {
        "description": "Order type code, such as \"BasicLexi\", \"Captioning\", etc.\nThe code distinguishes the nature of the order.",
        "enum": [
          "ASR",
          "AudioDescription",
          "AutoVoiceDubbing",
          "AutoVoiceLipSyncDubbing",
          "BasicLexi",
          "BasicLexiAD",
          "CaptionTidy",
          "CaptionTranslation",
          "Captioning",
          "Check",
          "CustomerAssistedLexiAD",
          "ManualIntegration",
          "MediaAlternativeTranscript",
          "OpenCaptions",
          "OverlayCaptions",
          "ProfessionalAssistedLexiAD",
          "Retime",
          "ScriptRetime",
          "SingleVoiceDubbing",
          "SingleVoiceLipSyncDubbing",
          "TimecodedTranscript",
          "Transcription"
        ],
        "type": "string"
      },
      "CustomVocabularyEntry": {
        "type": "object",
        "properties": {
          "content": {
            "description": "Content of the vocabulary.",
            "type": "string"
          },
          "soundsLike": {
            "description": "List of \"sounds like\" entries.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "content"
        ]
      },
      "OutputFormatting": {
        "description": "Formatting settings for output",
        "type": "object",
        "properties": {
          "lineEnding": {
            "description": "The line ending, such like '\\n', '\\r', '\\r\\n', '\\n\\r'",
            "type": "string"
          },
          "speakerChangeIndicator": {
            "description": "String literal, or \"S#: \" for \"S1: \"/\"S2: \" style",
            "type": "string"
          },
          "coloursForSpeakers": {
            "description": "Specifying the colours used for distinguishing different speakers in the captions.\nColours will be used for speakers in the order of their appearance.\nIn case the number of colours is smaller than the number of speakers, colours will be reused for the subsequent speakers.\n\nPlease note that some subtitle formats (such like SRT) do not support colours.\nThese literals are supported: black, white, red, lime, yellow, blue, magenta, cyan.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "audioEventWrapper": {
            "description": "Wrapper characters that enclose audio event labels (e.g. [applause] or (applause)).\nDefaults to square brackets when not specified.",
            "$ref": "#/components/schemas/AudioEventWrapper"
          },
          "subtitleSection": {
            "type": "object",
            "properties": {
              "maxLineLength": {
                "description": "Maximum number of Latin characters allowed per subtitle line, including\nspaces. Please note that for some of the non-western languages, the character\nis twice the width of a Latin character.",
                "type": "number"
              },
              "maxLines": {
                "description": "Maximum count of lines in a subtitle section",
                "type": "number"
              },
              "minimumDuration": {
                "description": "Minimum duration of a subtitle block in seconds.",
                "type": "number"
              },
              "backgroundColour": {
                "description": "Background colour of the subtitles. If omitted, the default colour is usually transparent/no-colour.\nThese literals are supported: black, white, red, lime, yellow, blue, magenta, cyan.",
                "type": "string"
              }
            }
          }
        }
      },
      "AudioEventWrapper": {
        "description": "Wrapper characters that enclose audio event labels (e.g. [MUSIC] or (MUSIC)).",
        "type": "object",
        "properties": {
          "open": {
            "type": "string"
          },
          "close": {
            "type": "string"
          }
        },
        "required": [
          "close",
          "open"
        ]
      },
      "Substitution": {
        "type": "object",
        "properties": {
          "fromText": {
            "description": "The plain text to be replaced. If this field has a value, then fromRegExpPattern and fromRegExpFlags fields will be ignored.",
            "type": "string"
          },
          "to": {
            "description": "The plain text to replace the matched text.",
            "type": "string"
          },
          "partialMatch": {
            "description": "Should text substitution only be applied to whole word/phrase or not.\nIf omitted, the default is false.\nIf partialMatch is false then the fromText will only be replaced if it is surrounded by spaces or start/end of line.",
            "type": "boolean"
          },
          "atBeginning": {
            "description": "Should text substitution only match at the beginning of text.\nIf omitted, the default is false.\nIf atBeginning is true, the pattern will be anchored to the start of text using ^ anchor.",
            "type": "boolean"
          }
        },
        "required": [
          "to"
        ]
      },
      "CreateOrderOutput": {
        "description": "Output from order creation operation",
        "type": "object",
        "properties": {
          "customerOrderId": {
            "type": "string"
          },
          "orderReference": {
            "type": "string"
          }
        },
        "required": [
          "customerOrderId",
          "orderReference"
        ]
      },
      "QueryOrdersOutputOrder": {
        "description": "Order structure in the output from query orders operation",
        "type": "object",
        "properties": {
          "uniqueOrderCreatedTimestamp": {
            "description": "Value from this field is used for pagination - get the value from the last (earliest) record returned from the server,\nand then use it as the \"end\" query parameter to fetch the next page of results.",
            "type": "string"
          },
          "orderItems": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetOrderDetailsOutputItem"
            }
          },
          "dateCreated": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "statusFinalisedTime": {
            "type": "string"
          },
          "translationLanguagesDisplayNames": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "platform": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "externalIntegrationId": {
            "description": "The same value previously passed in as externalIntegrationId when creating the order.",
            "type": "string"
          },
          "externalIntegrationData": {
            "description": "The same value previously passed in as externalIntegrationData when creating the order.",
            "type": "object",
            "properties": {},
            "additionalProperties": {}
          },
          "customerInstructions": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "id": {
            "type": "string"
          },
          "orderReference": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "creatorUserId": {
            "type": "string"
          },
          "creatorUserEmail": {
            "type": "string"
          },
          "creatorUserFullName": {
            "type": "string"
          },
          "translationLanguages": {
            "description": "Additional languages the output needs to be translated into.\nIt only applies to orders that generate text/captions outputs.",
            "type": "array",
            "items": {
              "enum": [
                "af",
                "am",
                "ar",
                "az",
                "bg",
                "bn",
                "bs",
                "ca",
                "cs",
                "cy",
                "da",
                "de",
                "el",
                "en",
                "es",
                "es-MX",
                "et",
                "fa-AF",
                "fas",
                "fi",
                "fil-PH",
                "fr",
                "fr-CA",
                "ga",
                "gu",
                "ha",
                "he",
                "hi",
                "hr",
                "ht",
                "hu",
                "hy",
                "id",
                "is",
                "it",
                "ja",
                "ka",
                "kk",
                "kn",
                "ko",
                "lt",
                "lv",
                "mk",
                "ml",
                "mn",
                "mr",
                "ms",
                "mt",
                "nb",
                "nl",
                "pa",
                "pl",
                "ps",
                "pt-BR",
                "pt-PT",
                "ro",
                "ru",
                "si",
                "sk",
                "sl",
                "so-SO",
                "sq",
                "sr",
                "sv",
                "sw",
                "ta",
                "te",
                "th",
                "tr",
                "uk",
                "ur",
                "uz",
                "vi",
                "zh",
                "zh-TW"
              ],
              "type": "string"
            }
          },
          "videoIntroduction": {
            "description": "Introduction/summary of the input video.\nIt is used by Lexi AD orders but can also be used by other order types.",
            "type": "string"
          },
          "audioDescription": {
            "description": "Options specific to audio description.",
            "$ref": "#/components/schemas/AudioDescriptionOptions"
          },
          "outputOptions": {
            "description": "Options for controlling how the output files will be generated",
            "$ref": "#/components/schemas/OrderOutputOptions"
          }
        },
        "required": [
          "dateCreated",
          "id",
          "orderItems",
          "orderReference",
          "platform",
          "region",
          "status",
          "uniqueOrderCreatedTimestamp"
        ]
      }
    }
  },
  "paths": {
    "/orders/{id}": {
      "get": {
        "operationId": "OrdersGetDetailsApi",
        "tags": [
          "Orders"
        ],
        "summary": "Get order details.",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "Customer order ID which is the unique identifier of the order",
            "schema": {
              "description": "Customer order ID which is the unique identifier of the order",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOrderDetailsOutput"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/orders": {
      "post": {
        "operationId": "OrdersCreateApi",
        "tags": [
          "Orders"
        ],
        "summary": "Create a new order.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateOrderOutput"
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      },
      "get": {
        "operationId": "OrdersQueryApi",
        "tags": [
          "Orders"
        ],
        "summary": "Query orders.",
        "parameters": [
          {
            "name": "start",
            "in": "query",
            "required": false,
            "description": "The earliest creation time of the orders to be retrieved, in ISO 8601 format UTC, e.g. 2024-01-01T00:00:00.000Z, inclusive.",
            "schema": {
              "description": "The earliest creation time of the orders to be retrieved, in ISO 8601 format UTC, e.g. 2024-01-01T00:00:00.000Z, inclusive.",
              "type": "string"
            }
          },
          {
            "name": "end",
            "in": "query",
            "required": false,
            "description": "The latest creation time of the orders to be retrieved, exclusive, with specific behaviour depending on the page being queried in the pagination context.\n\n- **First Page Query**: When querying the first page, this value specifies the latest creation time (exclusive) of the orders to be retrieved,\n  formatted as an ISO 8601 timestamp UTC (e.g., `2025-01-01T00:00:00.000Z`).\n\n- **Subsequent Pages**: When querying subsequent pages, this value must be set to the `uniqueOrderCreatedTimestamp` value of the last (earliest)\n  order from the page returned from previous API call.\n  The value of `uniqueOrderCreatedTimestamp` field looks like `2024-10-01T04:21:30.831Z_65d2f5b9-aaef-4d8a-8e4a-5ffeadf4093f`.",
            "schema": {
              "description": "The latest creation time of the orders to be retrieved, exclusive, with specific behaviour depending on the page being queried in the pagination context.\n\n- **First Page Query**: When querying the first page, this value specifies the latest creation time (exclusive) of the orders to be retrieved,\n  formatted as an ISO 8601 timestamp UTC (e.g., `2025-01-01T00:00:00.000Z`).\n\n- **Subsequent Pages**: When querying subsequent pages, this value must be set to the `uniqueOrderCreatedTimestamp` value of the last (earliest)\n  order from the page returned from previous API call.\n  The value of `uniqueOrderCreatedTimestamp` field looks like `2024-10-01T04:21:30.831Z_65d2f5b9-aaef-4d8a-8e4a-5ffeadf4093f`.",
              "type": "string"
            }
          },
          {
            "name": "allRegions",
            "in": "query",
            "required": false,
            "description": "Whether the query should be performed on orders in all regions.\nIf omitted or set to false, the query is performed on orders in the same region as the API endpoint.",
            "schema": {
              "description": "Whether the query should be performed on orders in all regions.\nIf omitted or set to false, the query is performed on orders in the same region as the API endpoint.",
              "type": "boolean"
            }
          },
          {
            "name": "customerName",
            "in": "query",
            "required": false,
            "description": "Don't set value in this field unless the consumer of the API has the permission to query orders for other customers.",
            "schema": {
              "description": "Don't set value in this field unless the consumer of the API has the permission to query orders for other customers.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryOrdersOutputOrder"
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/orders/validate": {
      "post": {
        "operationId": "OrdersValidateApi",
        "tags": [
          "Orders"
        ],
        "summary": "Validate the payload of an order creation request.",
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "description": "The scope of the validation to be performed.\nIf omitted or set to 'all', all validations are performed.\nIf set to 'basic', only resources and order data schema validations are performed.",
            "schema": {
              "description": "The scope of the validation to be performed.\nIf omitted or set to 'all', all validations are performed.\nIf set to 'basic', only resources and order data schema validations are performed.",
              "enum": [
                "all",
                "basic"
              ],
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrderInput"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": ""
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/voices": {
      "get": {
        "operationId": "VoicesApi",
        "tags": [
          "Voices"
        ],
        "summary": "Get available voices for a language.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": true,
            "description": "The language code to get available voices for (e.g., en-US, en-GB, en-AU)",
            "schema": {
              "description": "The language code to get available voices for (e.g., en-US, en-GB, en-AU)",
              "type": "string"
            }
          },
          {
            "name": "orderType",
            "in": "query",
            "required": false,
            "description": "Optional order type to filter voices by order-type.",
            "schema": {
              "description": "Optional order type to filter voices by order-type.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "sampleUrl": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "name"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/languages": {
      "get": {
        "operationId": "LanguagesApi",
        "tags": [
          "Languages"
        ],
        "summary": "Get all available languages.",
        "parameters": [
          {
            "name": "orderType",
            "in": "query",
            "required": false,
            "description": "The order type to get available languages for.",
            "schema": {
              "description": "The order type to get available languages for.",
              "type": "string"
            }
          },
          {
            "name": "inputLanguage",
            "in": "query",
            "required": false,
            "description": "The input language to get available languages for.",
            "schema": {
              "description": "The input language to get available languages for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "name"
                    ]
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/translation-languages": {
      "get": {
        "operationId": "TranslationLanguagesApi",
        "tags": [
          "Translation Languages"
        ],
        "summary": "Get available translation languages.",
        "parameters": [
          {
            "name": "sourceLanguage",
            "in": "query",
            "required": false,
            "description": "The source language to get available translation languages for.",
            "schema": {
              "description": "The source language to get available translation languages for.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "code",
                      "name"
                    ]
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/topic-models": {
      "get": {
        "operationId": "TopicModelsApi",
        "tags": [
          "Topic Models"
        ],
        "summary": "List available topic models.",
        "parameters": [
          {
            "name": "customerName",
            "in": "query",
            "required": false,
            "description": "The customer name to get available topic models for.\nThis is only read if the caller is an internal staff / coordinator.\nIf omitted, the topic models available to the caller will be returned.",
            "schema": {
              "description": "The customer name to get available topic models for.\nThis is only read if the caller is an internal staff / coordinator.\nIf omitted, the topic models available to the caller will be returned.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Array of topic model IDs (shared models first, then customer-specific)",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    },
    "/order-items/{orderItemId}/output/{fileId}/convert": {
      "get": {
        "operationId": "ConvertOutputApi",
        "tags": [
          "Orders"
        ],
        "summary": "Convert order item output to a different format (GET).",
        "parameters": [
          {
            "name": "orderItemId",
            "in": "path",
            "required": true,
            "description": "Order item ID",
            "schema": {
              "description": "Order item ID",
              "type": "string"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "File ID of the output document to convert",
            "schema": {
              "description": "File ID of the output document to convert",
              "type": "string"
            }
          },
          {
            "name": "outputFormat",
            "in": "query",
            "required": true,
            "description": "Output format to convert to (e.g., docx, stl, ttml, dfxp)",
            "schema": {
              "description": "Output format to convert to (e.g., docx, stl, ttml, dfxp)",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Binary file content with appropriate Content-Type and Content-Disposition headers"
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      },
      "post": {
        "operationId": "ConvertOutputPostApi",
        "tags": [
          "Orders"
        ],
        "summary": "Convert order item output to a different format (POST with optional conversion options).",
        "parameters": [
          {
            "name": "orderItemId",
            "in": "path",
            "required": true,
            "description": "Order item ID",
            "schema": {
              "description": "Order item ID",
              "type": "string"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "File ID of the output document to convert",
            "schema": {
              "description": "File ID of the output document to convert",
              "type": "string"
            }
          },
          {
            "name": "outputFormat",
            "in": "query",
            "required": true,
            "description": "Output format to convert to (e.g., docx, stl, ttml, dfxp)",
            "schema": {
              "description": "Output format to convert to (e.g., docx, stl, ttml, dfxp)",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "includeFormatting": {
                    "description": "Whether to include formatting in the converted output (only applicable for docx format)",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Binary file content with appropriate Content-Type and Content-Disposition headers"
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "403": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          },
          "500": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseBodyWithMessage"
                }
              }
            }
          }
        },
        "security": [
          {
            "ApiKey": []
          },
          {
            "JWT": []
          }
        ]
      }
    }
  }
}