{
  "openapi": "3.0.3",
  "info": {
    "title": "Streamdiver API",
    "version": "2.58.3",
    "x-logo": {
      "url": "https://streamdiver.com/wp-content/uploads/2023/01/streamdiver_logo.png"
    },
    "description": "### Comprehensive reference for integrating the Streamdiver Media API\n\n# Introduction\n\nWelcome to the API reference for the Streamdiver _Media API_ services!\n\nOur web API enables developers to seamlessly integrate video streaming and media asset management capabilities into their applications.\nThis API is designed according to RESTful principles with an OpenAPI specification aiming to facilitate easy integration and compatibilty.\n\nWith comprehensive endpoints covering everything from asset management to analytics and search, our API supports a wide range of functionalities to empower your applications. This documentation will guide you through the available endpoints, resources, authentication procedures, and provides examples to help you get started quickly and effectively.\n\nExplore our _Media API_ to discover how Streamdiver can enhance your software solutions.\nFor a full overview of Streamdiver services head to [streamdiver.com](https://streamdiver.com).\n"
  },
  "servers": [
    {
      "url": "https://api.streamdiver.com/v2"
    }
  ],
  "tags": [
    {
      "name": "Media",
      "description": "The `Media` asset object represents the files that have been uploaded and are hosted on the Streamdiver cloud.\nYou can upload files using the [create an upload](#tag/Uploads/operation/createUpload) request.\nWe support four asset types:\n\n- `video`\n- `audio`\n- `image`\n- `document`\n\n[Channels](#tag/Channels) can be used to organize the `Media` assets, each `Media` asset must be a\npart of at least one `Channel`.\n\nThe [Metadata](#tag/Media-Metadata) of an uploaded file is automatically extracted, including derived content-based metadata like transcripts.\nAdditionally `Metadata` is indexed for searchability.\n"
    },
    {
      "name": "Media Sections",
      "description": "`Sections` can be used to structure the content of a `Media` asset and make it accessible.\nThey unify the creation of markers and chapters of `Media` assets, through `time` or `timeranges` respectively.\nThe `timerange` type is used to create the [Chapters](#tag/Media-Chapters) for the player timeline.\n"
    },
    {
      "name": "Media Chapters",
      "description": "`Media Chapters` hold certain structures of a `Media` asset based on entries which can be linked to `Media Sections`.\nEvery `Media` asset of type video or audio has an AI generated `Media` chapter of type `autogenerated` - this `autogenerated` `Media` chapter is not editable.\nIn order to change an `autogenerated` `Media` chapter, you have to [copy it](#tag/Media-Chapters/operation/copyMediaChapter).\nThe copy has type `usergenerated` and is editable.\n"
    },
    {
      "name": "Media Metadata",
      "description": "Each uploaded [Media](#tag/Media) asset is analyzed automatically and its `Metadata` is extracted.\nThis starts with basic `Metadata` like file size, creation date etc. and goes far beyond.\nIt includes **descriptive** `Metadata` like `transcripts`; `speakers` diarization and recognition; `keywords` and `entities`; and a\nscene recognition, which is obtained applying various machine learning techniques.\n\nTranscription in multiple languages is supported, you can [retrieve a list of available languages](#tag/Tenants/operation/getSubtitleLanguages)\nfor your tenant and request multiple language `transcripts` for an asset via [extract metadata](#tag/Media-Metadata/operation/extractMetadata).\nIn particular, we also support the automatic **cross-language** transcription from any source language to English.\n\nThe `speakers` in videos and audio assetss are automatically assigned representations, that can be labeled.\nThen they are named automatically in the `transcripts` and [Subtitles](#tag/Media-Subtitles) if they are recognized\nagain in subsquently uploaded `Media` assets.\n\nThe `Metadata` is indexed and constitutes the basis for the **deep-search** functionality accross all\n`Media` types.\nThe `Metadata` can be [retrieved as structured-data](#tag/Media/operation/getSeoMetadata) for SEO enhancement of embedded `Media` assets.\n"
    },
    {
      "name": "Media Subtitles",
      "description": "The `Subtitles` can either be directly created from the automatic transcription or by\nuploading a subtitle file independently. We support [SRT](https://docs.fileformat.com/video/srt) or [WebVTT](https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API) for subtitle uploads.\n\nYou can download the `Subtitles` or `Transcript` in different formats using: [Download a transcript](#tag/Media-Metadata/operation/downloadMetadataTranscript)\n"
    },
    {
      "name": "Channels",
      "description": "`Channels` are used to organize [Media](#tag/Media) assets and to manage their accessibility.\nAlso `Media` search results can be filtered according to particular `Channels`.\nFurther, you can customize the `Channel's` appearance via [Designs](#tag/Designs).\n\nYou can make `Media` assets `public` by adjusting the `visibility` of the `Channel` the assets are assigned to.\nThe `Media` assets will then be available in the Streamdiver _Public Portal_ if your subscription includes it.\nFurther, if you are using `iframes` embeddings based on the Streamdiver _Public Portal_, the `Channel` `Designs` can be applied and customized for your `public` and `shared` content.\nThe `shared` `visibility` indicates that the `Media` asset can be publicly accessed based on its URL, but will be hidden from the Streamdiver _Public Portal_.\n\nWhen using the Streamdiver API in combination with the Streamdiver _Center_ it is important to note\nthat two `Channel` types are distinguished: `user` and `group` `Channels`.\nThe `user` `Channel` has reduced configuration options and is meant only for content exclusively\nmanaged by the particular user.\n\nA `Channel` has a collection of members, which can be used to grant access and permissions. The `members` are assigned together with roles representing the desired access/usage permissions.\n"
    },
    {
      "name": "Public Channels",
      "description": "Once `Channels` are set `public`, they can be listed with a dedicated endpoint.\n"
    },
    {
      "name": "Tags",
      "description": "`Tags` serve as labels that categorize `Media` assets based on themes, subjects, events or any other relevant topics.\nThe usage of `Tags` enhances discoverability of your asset library. They enable users to filter and locate specific content quickly.\n\nIn essence, `Tags` help to maintain an organized and efficient asset management process, ensuring that assets are both accessible and easy to categorize.\n\nWhile [Channels](#tag/Channels) are designed to manage permission (e.g. search scopes) in addition to organizing assets,\n`Tags` are meant for categorization only and complement the `Channels` for more granularity in categorization.\n"
    },
    {
      "name": "Uploads",
      "description": "The Streamdiver API is designed to facilite the efficient upload of large media files.\nOur asset storage is S3-compatible, so `Uploads` can be performed directly with S3 client libraries or supported tools, ensuring reliable and performant file transfers.\nAs a simpler alternative, you can upload files directly using an HTTP `PUT` request. However, for more reliable uploads—especially when dealing with large files (multiple gigabytes) or in environments with slow or unstable networks—we strongly recommend using an S3 client. The S3 client supports multipart uploads, automatic retries, and resumable uploads, making it a more robust solution for handling potential network interruptions or large file transfers.\n\nThe `Upload` process is split into three steps, first [create an upload](#tag/Uploads/operation/createUpload), perform the upload using the selected procedure (multipart using an S3 client, or single `PUT` request), then [complete the upload](#tag/Uploads/operation/markUploadComplete), which triggers further processing for optimized playout and metadata extraction (e.g. automatic transcription).\n"
    },
    {
      "name": "Downloads",
      "description": "The Streamdiver API facilites also the efficient retrieval of previously uploaded `Media` assets. One or multiple assets can be provided as file download, also their `Renditions`, the automatically generated size variants. Among other options, `Downloads` can be configured to be available until a specified `expire` date. Anonymous users can quickly retrieve a single `Rendition` at a time.\n"
    },
    {
      "name": "Search",
      "description": "Audio-visual deep search across all data layers. The [Metadata](#tag/Media-Metadata) is extracted and indexed automatically for all `Media` assets uploaded. This includes `transcripts`, `speakers`, `videoTexts` and many more types of `Metadata`.\n\nIn the most basic variant the search can be done using only the `text` parameter or a `filter`,\nbut for achieving the best results there is a wide range of parameters to better narrow down the search results.\nThis includes applying range filters like for example an upper limit to the asset duration: `durationto`.\n\n```bash\ncurl --request GET \\\n--url 'https://api.streamdiver.com/v2/search?type=all&text={search-phrase}' \\\n--header 'Accept: application/json' \\\n--header 'Authorization: Bearer {token}'\n```\n"
    },
    {
      "name": "Chat",
      "description": "Powered by our custom Large Language Model (LLM), `Chats` enables natural language interaction with your `Media` asset library.\n\nOnce an asset is uploaded and its `Metadata` processed, you can [ask questions about its content](#tag/Chat/operation/postQuestion) and retrieve answers directly.\n\nYour data remains secure within the Streamdiver cloud; no third-party services are involved. From `Metadata` indexing to LLM-powered responses, your data privacy is fully preserved.\n"
    },
    {
      "name": "Flows",
      "description": "Content `Flows` are pre-built AI-workflow automations. The `Flows` enable advanced LLM based automation of repetitive `Media` content based tasks. They combine best practise prompting with agentic capabilities.\n\nThe `Flows` can be used to analyse `Media` content or to create derived content in a reproducible and convenient way.\n"
    },
    {
      "name": "Recommendations",
      "description": "We provide `Recommendations` that can be used to automatically retrieve similar and related content.\nSimilarly, to the [Search](#tag/Search) the recommendations make use of the [Metadata](#tag/Media-Metadata) that is extracted and indexed automatically for all `Media` assets uploaded.\n\nEach uploaded `video` and `audio` `Media` asset is automatically structured into content-based chapters.\nThese can, optionally, be used to provide recommendations that are more specific and designed for efficient information retrieval.\n"
    },
    {
      "name": "History",
      "description": "Interactions of authenticated users with `Media` assets and interactions with assets publicly shared via the Streamdiver _Public Portal_,\nare tracked and we provide detailed analytics.\nThe tracking is entirely GDPR compliant as it is done via a tracking server hosted and managed by Streamdiver.\n"
    },
    {
      "name": "Livestreams",
      "description": "`Livestreams` allow content creators and broadcasters to engage directly with viewers, offering immediate interaction and feedback. Live streaming is vital for events, announcements, educational sessions, and entertainment, providing a platform for instantaneous communication and content delivery.\n\nWith robust tools to manage, monitor, and analyze `Livestreams`, our system ensures that live content is both high-quality and highly accessible, meeting the demands of diverse audiences and use cases.\n\nRunning a live stream requires a sequence of API requests, including [create](#tag/Livestreams/operation/createLivestream), [start](#tag/Livestreams/operation/startLivestream), [publish](#tag/Livestreams/operation/publishLivestream), and [finish](#tag/Livestreams/operation/stopLivestream). Please consult our developer documentation for a detailed [tutorial on live streaming](https://developer.streamdiver.com/docs/tutorials/livestreaming).\n"
    },
    {
      "name": "Designs",
      "description": "Using `Designs` you can customize the appearance of the Streamdiver _Public Portal_ and embedded content.\n\nThe two major elements that allow customization are `Channels` and the video player.\n`Designs` for the player can be applied per `Channel` or customized on the `Tenant` level.\n\nAs a more specialized application, you can also customize the `Design` of `transcripts` exported as text documents in `DOCX` format.\n"
    },
    {
      "name": "Tenants",
      "description": "If you subscribe to the Streamdiver _Media API_, a `Tenant` is created with the subscription.\n\n`Tenants` operate independently, ensuring isolation and customization based on specific needs or requirements.\n"
    },
    {
      "name": "Webhooks",
      "description": "The Streamdiver API facilites the efficient retrieval of events associated with API resources like e.g. `Media` assets via webhooks.\nWebhooks are automated callback messages sent from one application to another in response to specific events, e.g. when a `Media` asset is updated or deleted.\n\nWebhook events overview:\n\n- `ping` - sent to validate the connection to configured URL after a `webhook` [create](#tag/Webhooks/operation/createWebhook) or [update](#tag/Webhooks/operation/updateWebhook). This event can also be triggered manually using the [ping](#tag/Webhooks/operation/pingWebhook) action\n- `media.created` - sent when a new `Media` is added to the system. This is typically triggered after an upload is [completed](#tag/Uploads/operation/markUploadComplete), but also when eg. file is imported\n- `media.updated` - triggered when a `Media` is updated. The payload includes the updated `Media` representation and an array of the properties that were modified.\n- `media.deleted` - sent on `Media` deletion. Includes information whether delete operation was permanent\n- `media.restored` - sent when a previously deleted `Media` is [recovered](#tag/Media/operation/recoverMediaAsset).\n"
    },
    {
      "name": "Stories",
      "description": ""
    },
    {
      "name": "Meetings",
      "description": ""
    }
  ],
  "paths": {
    "/media": {
      "get": {
        "tags": [
          "Media"
        ],
        "summary": "List media assets",
        "description": "Returns a list of all `Media` assets within the current authorization scope.\n",
        "operationId": "listMedia",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "delete": {
        "tags": [
          "Media"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MediaAssetIds"
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/permanentDeletion"
          }
        ],
        "summary": "Bulk delete media assets",
        "description": "Performs a bulk operation to delete multiple `Media` assets with a single request. By default, performs a soft deletion, changing the asset status to `softDeleted`. A hard deletion, which physically deletes the assets from storage servers, can be requested optionally.\n",
        "operationId": "bulkDeleteMediaAssets",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/tags": {
      "patch": {
        "tags": [
          "Media"
        ],
        "summary": "Bulk assign tags",
        "description": "Assigns tags to multiple `Media` assets with a single request.\n",
        "operationId": "bulkAssignTags",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/bulkAssignTagsOperation"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/BulkAssignTags"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OkObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "tags": [
          "Media"
        ],
        "summary": "Get media tags",
        "description": "Gets all and common `Tag`s of the given `Media` assets.\n",
        "operationId": "getMediaTags",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MediaAssetIds"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaTagItemCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/media/{mediaId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/channelIdQueryString"
          }
        ],
        "summary": "Get media asset",
        "description": "Returns the current representation of a `Media` asset, containing detailed information such as its `name`, `description`, and, for video/audio assets, the playlist URL. Use the optional `channelId` parameter to retrieve a `Media` asset in the context of a `Channel` for embedding purposes. Iframe embeddings will then be based on the `Channel` design options like `playerDesign`.\n",
        "operationId": "getMedia",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaDetailed"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "Media"
        ],
        "summary": "Update media asset",
        "description": "Updates the basic properties of a `Media` asset.\n",
        "operationId": "updateMedia",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateMediaAsset"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaDetailed"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Remove media asset",
        "description": "Changes a `Media` asset's status to `softDeleted` or, optionally, performs a hard deletion, which physically deletes the `Media` asset from storage.\n",
        "operationId": "deleteMedia",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/permanentDeletion"
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "409": {
            "$ref": "#/components/responses/ErrorConflict"
          }
        }
      }
    },
    "/media/{mediaId}/recover": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "put": {
        "tags": [
          "Media"
        ],
        "summary": "Recover media",
        "description": "Restores a soft-deleted `Media` asset with all its previous `Channel` assignments.\n",
        "operationId": "recoverMediaAsset",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaDetailed"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/thumbnail": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "summary": "Get media thumbnail",
        "description": "Retrieves the thumbnail associated with a `Media` asset, which is a small image representing the asset.\n",
        "operationId": "getMediaThumbnail",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "summary": "Update media thumbnail",
        "description": "Updates the thumbnail for a `Media` asset. <br /> Allowed image formats:\n  - `image/jpeg` \n  - `image/png`\n",
        "operationId": "addMediaThumbnail",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ThumbnailNew"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete media thumbnail",
        "description": "Deletes the thumbnail from the `Media` asset.\n",
        "operationId": "deleteMediaThumbnail",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/ingest": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "put": {
        "tags": [
          "Media"
        ],
        "summary": "Reingest media",
        "description": "Forces a new ingest if a previous one failed. If a `Media` asset with a successful `ingestJob` is re-ingested, the renditions will be replaced.\n",
        "operationId": "ingestMediaAsset",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaDetailed"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/share": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "put": {
        "tags": [
          "Media"
        ],
        "summary": "Share media",
        "description": "Assigns the `Media` asset to a new [Channel](#tag/Channels) with a `shared` visibility level. The `Channel` is named `Share_{mediaId}` and is created automatically in the background. The `Channel` and `Media` asset will not be shown on the Streamdiver Public Portal landing page; the asset can only be accessed using the `shareLink` URL.\n",
        "operationId": "shareMediaAsset",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ShareLink"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/share/revoke": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "delete": {
        "tags": [
          "Media"
        ],
        "summary": "Revoke media share",
        "description": "Revokes the calling user's share of the `Media` asset.   Removes the user from the associated internal `Share_{mediaId}` channel.   If no other users remain as owners, the internal shared channel is deleted.   This operation does not affect share links of other users.\n",
        "operationId": "revokeMediaShare",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "Share link successfully revoked."
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/comments": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "summary": "List comments",
        "description": "Returns a list of comments under a specific `Media` asset.",
        "operationId": "listComments",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Media"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/CommentCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "post": {
        "summary": "Create comment",
        "description": "Creates a new comment for a `Media` asset.",
        "operationId": "createComment",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Media"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Comment"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Comment"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/media/{mediaId}/comments/{commentId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/commentId"
        }
      ],
      "put": {
        "tags": [
          "Media"
        ],
        "summary": "Update comment",
        "description": "Updates a comment of a `Media` asset.",
        "operationId": "updateComment",
        "security": [
          {
            "oauth2": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Comment"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Comment"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete comment",
        "description": "Removes a comment from a `Media` asset.",
        "operationId": "deleteComment",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/permissions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "summary": "Get permissions on media asset",
        "description": "Retrieves a list of permissions the current user has on the given `Media` asset. `SuperAdmin`s have all available permissions; the permissions of all other users are based on their respective `ChannelMembership`s and `ChannelRole`s.\n",
        "operationId": "getMediaPermissions",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/PermissionCollection"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/events": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "tags": [
          "Media"
        ],
        "summary": "Get media events (SSE)",
        "description": "Provides events associated with the `Media` asset and dependent resources like `Media Chapter`s or `Livestream`s using Server-Sent Events (SSE).\n",
        "operationId": "getMediaAssetEvents",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaAssetEvents"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/sections": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "tags": [
          "Media Sections"
        ],
        "summary": "List sections",
        "description": "Returns a list of sections for the `Media` asset. By default, only non-linked sections are returned.\n",
        "operationId": "listSections",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/optionalChapterId"
          },
          {
            "$ref": "#/components/parameters/includeLinked"
          },
          {
            "$ref": "#/components/parameters/includeAllChapterSections"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaSectionCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "post": {
        "summary": "Create section",
        "description": "Creates a new `Section` for a `Media` asset. The `Section` can be a `marker` or a `timerange` of the `Media` asset.\n",
        "operationId": "createSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MediaSection"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/MediaSection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/media/{mediaId}/sections/{sectionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/sectionId"
        }
      ],
      "get": {
        "summary": "Get section",
        "description": "Retrieves a particular `Section` for a `Media` asset based on its identifier.",
        "operationId": "getMediaSection",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaSection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "Media Sections"
        ],
        "summary": "Update section",
        "description": "Updates selected properties of a `Section`, such as its `start` or `end` time.",
        "operationId": "updateMediaSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateMediaSection"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/MediaSection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete section",
        "description": "Deletes a `Section` and removes its association with the `Media` asset.",
        "operationId": "deleteMediaSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/sections/{sectionId}/thumbnail": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/sectionId"
        }
      ],
      "get": {
        "summary": "Get section thumbnail",
        "description": "Retrieves the thumbnail of a `Media` asset `Section`, including the image URL and its dimensions.\n",
        "operationId": "getSectionThumbnail",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "summary": "Update section thumbnail",
        "description": "Updates a `Media` section's thumbnail.\n<br />\nAllowed image formats:\n  - `image/jpeg` \n  - `image/png`\n",
        "operationId": "addSectionThumbnail",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ThumbnailNew"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete section thumbnail",
        "description": "Removes a given thumbnail from a `Media` asset `Section`.",
        "operationId": "deleteSectionThumbnail",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/sections/{sectionId}/download": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/sectionId"
        }
      ]
    },
    "/media/{mediaId}/sections/{sectionId}/split": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/sectionId"
        }
      ],
      "post": {
        "summary": "Split section",
        "description": "Splits a `MediaSection` into two contiguous parts at the provided `splitAt` timestamp.  Designed as a convenience method for clipping workflows, this operation ensures the original section's duration is preserved across two distinct ones.  The response returns the modified original section as `updated` (changed to a `timerange` type ending at the `splitAt` point)  alongside a newly generated section as `created` (inheriting the original `type` and `end` boundary, starting from the 'splitAt' point).\n",
        "operationId": "splitSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Sections"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/SplitMediaSection"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/SplitMediaSection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/media/{mediaId}/chapters": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "post": {
        "summary": "Create media chapter",
        "description": "A `Media Chapter` structures a `Media` asset based on `entries` which can be linked with `Section`s.",
        "operationId": "createMediaChapter",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateMediaChapter"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/MediaChapter"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "get": {
        "summary": "List media chapters",
        "description": "Lists all `Media Chapter`s of the `Media` asset.\n",
        "operationId": "listMediaChapters",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/channelIdQueryString"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaChapterCollection"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/chapters/imports": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "post": {
        "summary": "Import a media chapter",
        "description": "Import a `Media Chapter` via OParl interface.",
        "operationId": "importMediaChapter",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ImportMediaChapter"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/MediaChapter"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/media/{mediaId}/chapters/{chapterId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/chapterId"
        },
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "summary": "Get media chapter",
        "description": "Retrieves the structure of a `Media` asset by loading a `Media Chapter` by its identifier.",
        "operationId": "getMediaChapter",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaChapter"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "delete": {
        "summary": "Delete media chapter",
        "description": "Deletes a `Media Chapter` of a `Media` asset by its identifier. All referenced `entries` and `Section`s will also be deleted.",
        "operationId": "deleteMediaChapter",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Media Chapters"
        ],
        "summary": "Update media chapter",
        "description": "Updates a `Media Chapter`'s name or description.\n",
        "operationId": "updateMediaChapter",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateMediaChapter"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaChapter"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/media/{mediaId}/chapters/{chapterId}/copy": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/chapterId"
        }
      ],
      "put": {
        "tags": [
          "Media Chapters"
        ],
        "summary": "Copy a media chapter",
        "description": "Copies a `Media Chapter`, duplicating it and all referenced `entries` and `Section`s.",
        "operationId": "copyMediaChapter",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaChapter"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/media/{mediaId}/chapters/{chapterId}/recalculate": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/chapterId"
        }
      ],
      "put": {
        "tags": [
          "Media Chapters"
        ],
        "summary": "Recalculate autogenerated media chapters",
        "description": "Recreates the existing structure of the autogenerated `Media Chapter` based on the `videoText` (OCR) and `transcript` [Metadata](#tag/Media-Metadata). Existing segment embeddings will be deleted and recalculated.\n",
        "operationId": "recreateAutogeneratedMediaChapters",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaChapter"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/chapters/{chapterId}/entries": {
      "parameters": [
        {
          "$ref": "#/components/parameters/chapterId"
        },
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "post": {
        "summary": "Create entry",
        "description": "`Entry` objects are used to structure a `Media` asset and belong to a dedicated `Media Chapter`.\nWhen creating an entry with a specific `sortNumber`, the system automatically resolves conflicts by adjusting the sort numbers of existing entries within the same parent scope.\n",
        "operationId": "createMediaChapterEntry",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateEntry"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Entry"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "patch": {
        "tags": [
          "Media Chapters"
        ],
        "summary": "Bulk update entries",
        "description": "Updates multiple `Entry` objects in a `Media Chapter` with a single request.\n",
        "operationId": "bulkUpdateEntries",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/BulkUpdateEntries"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OkObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/media/{mediaId}/chapters/{chapterId}/entries/{entryId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/chapterId"
        },
        {
          "$ref": "#/components/parameters/entryId"
        }
      ],
      "put": {
        "summary": "Update entry",
        "description": "Updates an entry of a `Media Chapter`; can be used to change the title of the `entry`.\nWhen modifying `sortNumber` or `parentId`, the system automatically resolves sort conflicts by adjusting the sort numbers of other entries within the affected parent scope.\n",
        "operationId": "updateMediaChapterEntry",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateEntry"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Entry"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete entry",
        "description": "Deletes an entry and all its child `entries` from the `Media Chapter`.",
        "operationId": "deleteMediaChapterEntry",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/chapters/{chapterId}/entries/{entryId}/sections/{sectionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/chapterId"
        },
        {
          "$ref": "#/components/parameters/entryId"
        },
        {
          "$ref": "#/components/parameters/sectionId"
        }
      ],
      "put": {
        "summary": "Link a section with an entry",
        "description": "Links a `Section` to an `entry` to structure a `Media` asset. The `Section` to be linked must be created in the context of the `Media Chapter`.",
        "operationId": "linkMediaChapterEntryToMediaSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "responses": {
          "201": {
            "$ref": "#/components/responses/Entry"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "summary": "Unlink a section from an entry",
        "description": "Removes a `Section` from an entry, making that entry a navigational element of the `Media Chapter`.",
        "operationId": "unlinkMediaChapterEntryFromMediaSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Chapters"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/metadata": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "tags": [
          "Media Metadata"
        ],
        "summary": "Get metadata",
        "description": "Returns all derived `Metadata` for a given `Media` asset.\n",
        "operationId": "listMetadata",
        "security": [
          {
            "oauth2": [
              "ViewMetadata"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/metadataCollectionExpand"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MetadataCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "put": {
        "summary": "Extract metadata",
        "description": "Extracts metadata (with optional presets) from the `Media` asset.\n",
        "operationId": "extractMetadata",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "tags": [
          "Media Metadata"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ExtractMetadata"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/MetadataCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/ErrorOnUpdate"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "summary": "Delete metadata",
        "description": "Deletes metadata for a given asset.\n",
        "operationId": "deleteMetadata",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "tags": [
          "Media Metadata"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "summary": "List transcripts",
        "description": "Returns a list of transcripts associated with the given `Media` asset.\n",
        "operationId": "listTranscripts",
        "security": [
          {
            "oauth2": [
              "ViewMetadata"
            ]
          }
        ],
        "tags": [
          "Media Metadata"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TranscriptCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "get": {
        "summary": "Get transcript",
        "description": "Retrieves a transcript of a `Media` asset by its identifier. An ID is required since there can be multiple `Transcript`s for a single `Media` asset.\n",
        "operationId": "getMetadataTranscript",
        "security": [
          {
            "oauth2": [
              "ViewMetadata"
            ]
          }
        ],
        "tags": [
          "Media Metadata"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MetadataRecordTranscript"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "put": {
        "tags": [
          "Media Metadata"
        ],
        "summary": "Update transcript",
        "deprecated": true,
        "description": "No longer maintained. Use [Update and time-align the transcript](#tag/Media-Metadata/operation/updateTranscriptWithTimeAlignment) instead.\n",
        "operationId": "updateTranscript",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/paragraphId"
          },
          {
            "$ref": "#/components/parameters/word"
          },
          {
            "$ref": "#/components/parameters/merge"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MetadataRecordTranscriptNew"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/MetadataRecordTranscript"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "summary": "Delete transcript",
        "description": "Deletes a `Transcript` of a `Media` asset.\n",
        "operationId": "deleteTranscript",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "tags": [
          "Media Metadata"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}/timeAlignment": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "put": {
        "tags": [
          "Media Metadata"
        ],
        "summary": "Update and time-align the transcript",
        "description": "Updates a `Transcript` by adjusting word-level timestamps. Supports bulk editing of multiple transcript paragraphs in a single request.\n",
        "operationId": "updateTranscriptWithTimeAlignment",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MetadataRecordTranscriptTimeAlignment"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/MetadataRecordTranscript"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}/full": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "put": {
        "x-no-merge": true,
        "tags": [
          "Media Metadata"
        ],
        "summary": "Update full transcript",
        "description": "Updates complete `Transcript`. Word-level timestamps are adjusted automatically using time code alignment.\n",
        "operationId": "updateFullTranscript",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateFullTranscriptRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/MetadataRecordTranscript"
          },
          "400": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorUnprocessableEntity"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}/activate": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "put": {
        "tags": [
          "Media Metadata"
        ],
        "summary": "Activate a transcript",
        "description": "Adds the `isActive` attribute to the specified `Transcript` and removes it from all other `Transcript`s of the given `Media` asset.\n",
        "operationId": "activateTranscript",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ActivatedObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}/speaker": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "put": {
        "tags": [
          "Media Metadata"
        ],
        "summary": "Update speaker in a transcript",
        "description": "Updates a speaker in a `Transcript` by assigning a different speaker to the `paragraph`. This action informs the system that the recognition was incorrect and that the representation of the speaker should be updated.\n",
        "operationId": "updateSpeaker",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MetadataTranscriptSpeakerInfo"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/MetadataRecordTranscript"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}/assignsubtitle": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "post": {
        "tags": [
          "Media Metadata"
        ],
        "summary": "Assign transcript as subtitle",
        "description": "Derives subtitles from the `Transcript` and assigns them. The ISO-639 `languageModel` code of the `Transcript` is automatically mapped to the language name.\n",
        "operationId": "assignTranscriptAsSubtitle",
        "security": [
          {
            "oauth2": [
              "CreateMetadata"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/AssignTranscriptAsSubtitles"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SubtitleAssigned"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/metadata/transcripts/{transcriptId}/download": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/transcriptId"
        }
      ],
      "get": {
        "summary": "Download a transcript",
        "description": "Downloads a transcript in the specified format. Available formats are `JSON`, `TXT`, `SRT`, `WebVTT`, and `DOCX` (*Microsoft Word*). A [template can be created](#tag/Design-Settings/operation/createDocxExportDesignSettings) and applied to the `DOCX` format export.\n",
        "operationId": "downloadMetadataTranscript",
        "security": [
          {
            "oauth2": [
              "ViewMetadata"
            ]
          }
        ],
        "tags": [
          "Media Metadata"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/transcriptDownloadType"
          },
          {
            "$ref": "#/components/parameters/omitSpeakerLabels"
          },
          {
            "$ref": "#/components/parameters/exportTemplateId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TranscriptDownloadResponse"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/subtitles/{languageCode}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/languageCode"
        }
      ],
      "get": {
        "summary": "Get subtitles",
        "description": "Gets subtitles for a `Media` asset in a specific language. The subtitles are returned in [WebVTT](https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API) format. The available languages can be retrieved from the `Media` asset itself.\n",
        "operationId": "getSubtitle",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/subtitleStart"
          },
          {
            "$ref": "#/components/parameters/subtitleDuration"
          }
        ],
        "tags": [
          "Media Subtitles"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SubtitleVtt"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "put": {
        "summary": "Create subtitles",
        "description": "Adds or replaces subtitles for the given language.",
        "operationId": "addSubtitle",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Subtitles"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChangeSubtitleRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Subtitle"
          },
          "201": {
            "$ref": "#/components/responses/Subtitle"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/ErrorOnUpdate"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "summary": "Delete subtitle",
        "description": "Deletes the subtitle for the given language.",
        "operationId": "deleteSubtitle",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Media Subtitles"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/seo": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "get": {
        "tags": [
          "Media"
        ],
        "summary": "Get SEO metadata",
        "description": "Provides structured metadata in `JSON/LD` format for public video `Media` assets to use for SEO enhancement when embedding. The structured-data schema is consistent with the Google SEO standard for videos ([Video structured data](https://developers.google.com/search/docs/appearance/structured-data/video)).\n",
        "operationId": "getMediaSeoMetadata",
        "security": [
          {
            "oauth2": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaSeoStructuredData"
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/attachments": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        }
      ],
      "post": {
        "summary": "Create file attachment",
        "description": "Uploads multiple file attachments to a `Media` asset. The response includes an `uploadUrl` for direct file upload. To check the file size limit and allowed file extensions, use the [Get tenant settings](#tag/Tenants/operation/getCurrentTenantSettings) endpoint and refer to the `systemSettings.fileAttachmentSizeLimit` and `systemSettings.fileAttachmentAllowedExtensions` fields in the response.\n",
        "operationId": "createFileAttachment",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "File Attachments"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateFileAttachment"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/CreateFileAttachment"
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "get": {
        "summary": "List file attachments",
        "description": "Lists all `File Attachment`s of a `Media` asset.\n",
        "operationId": "listFileAttachments",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "File Attachments"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/FileAttachmentCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/media/{mediaId}/attachments/{attachmentId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/attachmentId"
        }
      ],
      "delete": {
        "summary": "Delete file attachment",
        "description": "Deletes a `File Attachment` of a `Media` asset by its identifier.",
        "operationId": "deleteFileAttachment",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "File Attachments"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "summary": "Update file attachment",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "operationId": "updateFileAttachment",
        "tags": [
          "File Attachments"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateFileAttachment"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/FileAttachment"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Search",
        "description": "Returns a ranked list of all `Media` assets within the current authorization scope that match the search query. The request supports specifying a text `query`, search `fields`, search `filters`, and pagination.\n",
        "operationId": "getSearch",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/searchType"
          },
          {
            "$ref": "#/components/parameters/searchFields"
          },
          {
            "$ref": "#/components/parameters/searchText"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/searchFilterAssetTypes"
          },
          {
            "$ref": "#/components/parameters/searchFilterSpeakers"
          },
          {
            "$ref": "#/components/parameters/searchFilterEntities"
          },
          {
            "$ref": "#/components/parameters/searchFilterActions"
          },
          {
            "$ref": "#/components/parameters/searchFilterObjects"
          },
          {
            "$ref": "#/components/parameters/searchFilterKeywords"
          },
          {
            "$ref": "#/components/parameters/searchFilterFilesizeFrom"
          },
          {
            "$ref": "#/components/parameters/searchFilterFilesizeTo"
          },
          {
            "$ref": "#/components/parameters/searchFilterBitrateFrom"
          },
          {
            "$ref": "#/components/parameters/searchFilterBitrateTo"
          },
          {
            "$ref": "#/components/parameters/searchFilterDurationFrom"
          },
          {
            "$ref": "#/components/parameters/searchFilterDurationTo"
          },
          {
            "$ref": "#/components/parameters/searchFilterResolutionWidthFrom"
          },
          {
            "$ref": "#/components/parameters/searchFilterResolutionWidthTo"
          },
          {
            "$ref": "#/components/parameters/searchFilterResolutionHeightFrom"
          },
          {
            "$ref": "#/components/parameters/searchFilterResolutionHeightTo"
          },
          {
            "$ref": "#/components/parameters/searchFilterTags"
          },
          {
            "$ref": "#/components/parameters/searchFilterChannelId"
          },
          {
            "$ref": "#/components/parameters/searchFilterMediaAssetId"
          },
          {
            "$ref": "#/components/parameters/searchFilterSpeakerId"
          },
          {
            "$ref": "#/components/parameters/searchFilterCreatedByUserId"
          },
          {
            "$ref": "#/components/parameters/searchFilterCreatedBy"
          },
          {
            "$ref": "#/components/parameters/searchFilterIncludeSoftDeleted"
          },
          {
            "$ref": "#/components/parameters/searchFilterDpiFrom"
          },
          {
            "$ref": "#/components/parameters/searchFilterDpiTo"
          },
          {
            "$ref": "#/components/parameters/searchFilterAfter"
          },
          {
            "$ref": "#/components/parameters/searchFilterBefore"
          },
          {
            "$ref": "#/components/parameters/searchPresetId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SearchResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/search/semantic": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Semantic search",
        "description": "Returns a ranked list of all `Media` assets within the current authorization scope that match the search query. The rank is based on the semantic similarity of the search query to the `Metadata` of the `Media` assets.\n",
        "operationId": "getSearchSemantic",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/searchText"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/searchFilterAssetTypes"
          },
          {
            "$ref": "#/components/parameters/searchFilterChannelId"
          },
          {
            "$ref": "#/components/parameters/searchFilterIncludeSoftDeleted"
          },
          {
            "$ref": "#/components/parameters/searchPresetId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SearchSemanticMediaResultResponse"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/search/textSemantic": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Text semantic search",
        "description": "Returns a ranked list of all `Media` assets within the current authorization scope that match the search query. The rank is based on the semantic similarity of the search query to the `Section`s of the `Media` assets.\n",
        "operationId": "getSearchTextSemantic",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/searchText"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/searchFilterAssetTypes"
          },
          {
            "$ref": "#/components/parameters/searchFilterChannelId"
          },
          {
            "$ref": "#/components/parameters/searchFilterIncludeSoftDeleted"
          },
          {
            "$ref": "#/components/parameters/searchPresetId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/search/ranges": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Get search ranges",
        "description": "Returns possible search ranges like `durationTo` and `fileSizeTo`.\n",
        "operationId": "getSearchRanges",
        "security": [
          {
            "oauth2": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SearchRanges"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/search/preset": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "List saved searches",
        "description": "Returns a list of saved `Search` presets. The available scopes are:\n- `user`: Managed by the individual user.\n- `tenant`: Managed by users with the `Tenant Administrator` role and visible to all users within the tenant.\n- `system`: Available to all tenants but not editable.\n",
        "operationId": "listSearchPresets",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/listFilter"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SearchPresetCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Save search preset",
        "description": "Creates a reusable preset of a `Search` query.\n",
        "operationId": "createSearchPreset",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Search"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateSearchPreset"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/SearchPreset"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/search/preset/{searchPresetId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/searchPresetIdPath"
        }
      ],
      "put": {
        "tags": [
          "Search"
        ],
        "summary": "Update search preset",
        "description": "Updates a `Search` preset in order to change your saved `Search` request. The available scopes are: - `user`: Can be updated by the creator of the `Search` preset. - `tenant`: Can be updated by users with the `Tenant Administrator` role.\n",
        "security": [
          {
            "oauth2": []
          }
        ],
        "operationId": "updateSearchPreset",
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateSearchPreset"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/SearchPreset"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete search preset",
        "description": "Deletes a `Search` preset by its identifier. The available scopes are: - `user`: Can be deleted by the creator of the `Search` preset. - `tenant`: Can be deleted by users with the `Tenant Administrator` role.\n",
        "operationId": "deleteSearchPreset",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Search"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/hotwords/{hotwordId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/hotwordId"
        }
      ]
    },
    "/uploads": {
      "get": {
        "tags": [
          "Uploads"
        ],
        "summary": "List uploads",
        "description": "Returns a list of all uploads within the current authorization scope.\n",
        "operationId": "listUploads",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/listFilter"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/UploadCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create upload",
        "description": "Creates an `Upload` of a new [Media](#tag/Media) asset and returns all information to perform the upload of the source file via the chosen input `type`.\n\nThe `transcriptLanguageCode` parameter determines which speech-to-text language model will be applied for transcription after a successful upload. The `useVad` parameter determines whether to use voice activity detection for transcription. A list of [transcription languages](#tag/Tenants/operation/getMetadataTranscriptionLanguageModels) available for the tenant can be retrieved separately.\n",
        "operationId": "createUpload",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Uploads"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Upload"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Upload"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/uploads/{uploadId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/uploadId"
        }
      ],
      "get": {
        "summary": "Get upload",
        "description": "Retrieves a specific `Upload` by its identifier.",
        "operationId": "getUpload",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Uploads"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Upload"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "delete": {
        "summary": "Delete upload",
        "description": "Deletes a specific `Upload` by its identifier. An `Upload` can be deleted once it is completed; the related files will then be deleted from storage.\n",
        "operationId": "deleteUpload",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Uploads"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/uploads/{uploadId}/cancel": {
      "parameters": [
        {
          "$ref": "#/components/parameters/uploadId"
        }
      ],
      "put": {
        "summary": "Cancel upload",
        "description": "Marks an upload as cancelled, and the related files will be deleted from storage. The rendition and metadata extraction processes are not scheduled.\n",
        "operationId": "markUploadCancel",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Uploads"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Upload"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/uploads/{uploadId}/complete": {
      "parameters": [
        {
          "$ref": "#/components/parameters/uploadId"
        },
        {
          "$ref": "#/components/parameters/optionalChannelId"
        },
        {
          "$ref": "#/components/parameters/ignoreDuplicates"
        }
      ],
      "put": {
        "summary": "Complete upload",
        "description": "Marks an upload as completed. A new `Media` asset is created, and the transcoding and metadata extraction processes are scheduled. If no `channelId` is provided, the `Media` asset is assigned to the default `Channel`. If duplicate check is enabled and a duplicate file (based on the file hash) was uploaded, it will return a 409 Conflict.\n",
        "operationId": "markUploadComplete",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Uploads"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MultipartUploadParts"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Upload"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "409": {
            "$ref": "#/components/responses/ErrorConflict"
          }
        }
      }
    },
    "/uploads/imports": {
      "get": {
        "tags": [
          "Uploads"
        ],
        "summary": "List file imports",
        "description": "Lists all `Media` asset import tasks within the current authorization scope.\n",
        "operationId": "listFilesImports",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/optionalUserId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/FilesImportCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create file import",
        "description": "Creates a background job to import `Media` assets.\nAvailable import sources:\n  - direct HTTP(S) file download URLs\n  - presigned URLs pointing to S3 storage\n  - URLs pointing to public assets on popular online video platforms, like [YouTube](https://youtube.com), [Vimeo](https://vimeo.com), or [ORF:ON](https://on.orf.at/)\n",
        "operationId": "createFilesImport",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Uploads"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateFilesImport"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/FilesImport"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/uploads/imports/{filesImportId}": {
      "get": {
        "tags": [
          "Uploads"
        ],
        "summary": "Get file import",
        "description": "Retrieves a specific import task by its identifier.\n",
        "operationId": "getFilesImport",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/filesImportId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/FilesImport"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "put": {
        "tags": [
          "Uploads"
        ],
        "summary": "Cancel file import",
        "description": "Cancels a specific import task by its identifier.\n",
        "operationId": "cancelFilesImport",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/filesImportId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/FilesImport"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/downloads": {
      "get": {
        "tags": [
          "Downloads"
        ],
        "summary": "List downloads",
        "description": "Returns a list of `Download`s that the user has created or is allowed to see.\n",
        "operationId": "listDownloads",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DownloadCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create download",
        "description": "Creates a new `Download` which can contain selected `Media` assets, specific `Rendition`s of those assets, and optionally, selected `Transcript`s. Anonymous users are limited to one `Rendition` per download.\n",
        "operationId": "createDownload",
        "security": [
          {
            "oauth2": [
              "DownloadFromChannel"
            ]
          }
        ],
        "tags": [
          "Downloads"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/DownloadNew"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Download"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/downloads/{downloadId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/downloadId"
        }
      ],
      "get": {
        "summary": "Get download",
        "description": "Retrieves a `Download` by its identifier.\n",
        "operationId": "getDownload",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Downloads"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Download"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "delete": {
        "summary": "Delete download",
        "description": "Deletes a `Download` by its identifier.\n",
        "operationId": "deleteDownload",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Downloads"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tags": {
      "get": {
        "tags": [
          "Tags"
        ],
        "summary": "List tags",
        "description": "Returns a paginated list of all `Tag`s.\n",
        "operationId": "listTags",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TagCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create tag",
        "description": "Adds a new tag that can then be used to label `Media` assets.\n",
        "operationId": "createTag",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tags"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateTagRequest"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Tag"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/tags/{tagId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tagId"
        }
      ],
      "get": {
        "summary": "Get tag",
        "description": "Retrieves a `Tag` by its identifier.\n",
        "operationId": "getTag",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tags"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Tag"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete tag",
        "description": "Deletes a given `Tag` and all its associations with `Media` assets.\n",
        "operationId": "deleteTag",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tags"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Tags"
        ],
        "summary": "Update tag",
        "description": "Changes the name of a `Tag`.\n",
        "operationId": "updateTag",
        "security": [
          {
            "oauth2": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateTagRequest"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Tag"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/channels": {
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "List channels",
        "description": "Retrieves a list of all `Channel`s within the current authorization scope.\n",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "operationId": "listChannels",
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/channelCollectionExpand"
          },
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/compressed"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create channel",
        "description": "Creates a new `Channel` of type `group`. The creator of the `Channel` is automatically a `Channel` member with the role `Channel Owner`.\n",
        "security": [
          {
            "oauth2": []
          }
        ],
        "operationId": "createChannel",
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateChannel"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Channel"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/channels/{channelId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "get": {
        "summary": "Get channel",
        "description": "Retrieves a `Channel` by its `channelId`.\n",
        "operationId": "getChannel",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "Channels"
        ],
        "summary": "Update channel",
        "description": "Updates certain properties of a `Channel`. To adjust the `Channel`'s visibility, refer to the [Update channel visibility](#tag/Channels/operation/updateChannelVisibility) endpoint.\n",
        "operationId": "updateChannel",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateChannel"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete channel",
        "description": "Deletes a `Channel` and its associations to previously assigned `Media` assets.\n",
        "operationId": "deleteChannel",
        "security": [
          {
            "oauth2": [
              "DeleteChannel"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/channels/{channelId}/visibility": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "put": {
        "tags": [
          "Channels"
        ],
        "summary": "Update channel visibility",
        "description": "Updates a `Channel`'s visibility by its `channelId`. A user with the role `Publisher` or higher can set a `Channel`'s visibility to `public`. In combination with the Streamdiver *Public Portal*, a `public` `Channel` will be listed in the portal and become publicly accessible. `Channel`s with visibility `shared` are hidden from the portal but can be accessed by anyone with the `Channel`'s share link.\n",
        "operationId": "updateChannelVisibility",
        "security": [
          {
            "oauth2": [
              "Publisher"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateChannelVisibility"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/channels/{channelId}/feature": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        },
        {
          "$ref": "#/components/parameters/forceToggle"
        }
      ],
      "put": {
        "tags": [
          "Channels"
        ],
        "summary": "Set channel featured",
        "description": "Toggles the featured state of a `Channel`, which sorts it to the top. The desired state can optionally be forced with a query parameter.\n",
        "operationId": "featureChannel",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "The resource state was changed."
          },
          "304": {
            "description": "The resource was not modified."
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/members": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "post": {
        "summary": "Add channel member",
        "description": "Assigns a new member of type `user` or `usergroup` to the `Channel`.\n",
        "operationId": "createChannelMember",
        "security": [
          {
            "oauth2": [
              "ManagerMemberAssignments"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateChannelMembers"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/ChannelMemberCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "get": {
        "summary": "List channel members",
        "description": "Lists all members and their roles for a `Channel`.\n",
        "operationId": "listChannelMembers",
        "security": [
          {
            "oauth2": [
              "ManagerMemberAssignments"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelMemberCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/members/{memberId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        },
        {
          "$ref": "#/components/parameters/memberId"
        }
      ],
      "get": {
        "summary": "Get channel member",
        "description": "Retrieves a `Channel` member by its identifier.\n",
        "operationId": "getChannelMember",
        "security": [
          {
            "oauth2": [
              "ManagerMemberAssignments"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelMember"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "tags": [
          "Channels"
        ],
        "summary": "Update channel member",
        "description": "Updates the properties of a `Channel` member.\n",
        "operationId": "updateChannelMember",
        "security": [
          {
            "oauth2": [
              "ManagerMemberAssignments"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateChannelMemberRole"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/ChannelMember"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Remove channel member",
        "description": "Removes the assignment of a member from the `Channel`.\n",
        "operationId": "deleteChannelMember",
        "security": [
          {
            "oauth2": [
              "ManagerMemberAssignments"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/channels/{channelId}/media": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "summary": "List channel media",
        "description": "Retrieves all `Media` assets assigned to a `Channel`.\n",
        "operationId": "listChannelMedia",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Media"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "put": {
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MediaAssetIds"
        },
        "summary": "Add media to channel",
        "description": "Performs a bulk operation to assign multiple `Media` assets to a `Channel` with a single request.\n",
        "operationId": "moveMediaIntoChannel",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/media/remove": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "put": {
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/MediaAssetIds"
        },
        "summary": "Remove media from channel",
        "description": "Performs a bulk operation to remove multiple `Media` assets from a `Channel` with a single request. If an asset is in no other `Channel`, it is assigned back to the `user` `Channel` of its creator.\n",
        "operationId": "removeMediaFromChannel",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/media/{mediaId}/feature": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        },
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/forceToggle"
        }
      ],
      "put": {
        "tags": [
          "Channels"
        ],
        "summary": "Set media featured in channel",
        "description": "Toggles the featured state of a `Media` asset within a `Channel`, which sorts it to the top. The desired state can optionally be forced with a query parameter.\n",
        "operationId": "featureMediaAsset",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "204": {
            "description": "The resource state was changed."
          },
          "304": {
            "description": "The resource was not modified."
          },
          "404": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/media/{mediaId}/seo": {
      "parameters": [
        {
          "$ref": "#/components/parameters/mediaId"
        },
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "get": {
        "deprecated": true,
        "tags": [
          "Media"
        ],
        "summary": "Get SEO metadata",
        "description": "No longer maintained. Use the [SEO metadata](#tag/Media/operation/getMediaSeoMetadata) from the `Media` asset instead.\n",
        "operationId": "getSeoMetadata",
        "security": [
          {
            "oauth2": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MediaSeoStructuredData"
          },
          "400": {
            "$ref": "#/components/responses/Error"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{tenantShortcode}/public": {
      "get": {
        "tags": [
          "Public Channels"
        ],
        "summary": "List public channels",
        "description": "Returns a list of all `public` `Channel`s of the tenant.\n",
        "operationId": "listPublicChannels",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/tenantShortcode"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "$ref": "#/components/parameters/channelCollectionExpand"
          },
          {
            "$ref": "#/components/parameters/compressed"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelCollection"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/channels/{channelId}/feed": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "get": {
        "tags": [
          "Channels"
        ],
        "summary": "Get channel feed import",
        "description": "Returns the RSS feed import setup for the `Channel`.\n",
        "operationId": "getFeedImportSetup",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelFeed"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChannelImportFeed"
        },
        "summary": "Create channel feed import",
        "description": "Configures an RSS feed import for automatically importing `Media` assets from an external feed to the specified `Channel`. A time range for the import can be specified, and monitoring for new assets can optionally be enabled.\n",
        "operationId": "setupFeedImport",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChannelFeed"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "put": {
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateChannelImportFeed"
        },
        "summary": "Update channel feed import",
        "description": "Updates the RSS feed import for the `Channel`. The time range and monitoring settings can be changed.\n",
        "operationId": "updateFeedImport",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OkObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "summary": "Delete channel feed import",
        "description": "Deletes a feed without deleting the `Media` assets that have already been imported into the `Channel`.\n",
        "operationId": "deleteChannelFeed",
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/channels/{channelId}/thumbnail": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "get": {
        "summary": "Get channel thumbnail",
        "description": "Retrieves the thumbnail of the `Channel`.\n",
        "operationId": "getChannelThumbnail",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "summary": "Update channel thumbnail",
        "description": "Updates the thumbnail for the selected `Channel`. <br /> Allowed image formats:\n  - `image/jpeg`\n  - `image/png`\n",
        "operationId": "addChannelThumbnail",
        "security": [
          {
            "oauth2": [
              "ManageChannel"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ThumbnailNew"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete channel thumbnail",
        "description": "Deletes the thumbnail from the `Channel`. The default thumbnail, which can be configured in the [tenant settings](#tag/Tenants/operation/getCurrentTenantSettings), will then be used.\n",
        "operationId": "deleteChannelThumbnail",
        "security": [
          {
            "oauth2": [
              "ManageChannel"
            ]
          }
        ],
        "tags": [
          "Channels"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/channels/{channelId}/designs/{designSettingsId}": {
      "put": {
        "security": [
          {
            "oauth2": [
              "ManageSharingOptions"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/channelId"
          },
          {
            "$ref": "#/components/parameters/designSettingsId"
          }
        ],
        "tags": [
          "Channels"
        ],
        "summary": "Assign design settings to channel",
        "description": "Assigns a previously created design template to a `Channel`. The design template is applied to the `Channel` and is used to render the `Channel`'s appearance, including the player. For more details, refer to the [create a channel design template](#tag/Design-Settings/operation/createChannelDesignTemplate) endpoint.\n",
        "operationId": "assignDesignToChannel",
        "responses": {
          "200": {
            "$ref": "#/components/responses/OkObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/stories": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "put": {
        "tags": [
          "Stories"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/StoryIds"
        },
        "summary": "Add stories to channel",
        "description": "Performs a bulk operation to assign many interactive stories to a `Channel` with a single request.\n",
        "operationId": "moveStoriesIntoChannel",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/channels/{channelId}/stories/remove": {
      "parameters": [
        {
          "$ref": "#/components/parameters/channelId"
        }
      ],
      "put": {
        "tags": [
          "Stories"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/StoryIds"
        },
        "summary": "Remove stories from channel",
        "description": "Performs a bulk operation to remove many interactive stories from a `Channel` with a single request. An interactive story cannot be removed from its root interactive `Channel`.\n",
        "operationId": "removeStoriesFromChannel",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Channel"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/chats": {
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Ask a question",
        "description": "Enables question-based interactions across multiple `Media` assets, supporting queries against all assets, a subset of filtered assets, or specific assets within the tenant's `Channel`s.\n\n- For audio and video assets, responses are derived from metadata such as available transcripts and speakers across the selected assets.\n- For document assets, responses are based on both the metadata and content of the relevant documents within the query scope.\n\nRetrieves contextual responses related to topics or specific details within the metadata and content of the `Media` assets.\n",
        "operationId": "postQuestionGlobal",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChatQuestionGlobal"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChatAnswerGlobal"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/chats/stream": {
      "post": {
        "tags": [
          "Chat"
        ],
        "summary": "Ask a question (SSE)",
        "description": "Enables streaming question-based interactions across multiple `Media` assets using Server-Sent Events (SSE). It supports querying all assets, a subset of filtered assets, or specific assets within the tenant's `Channel`s.\n\n- For audio and video assets, responses are derived from metadata such as available transcripts and speakers across the selected assets.\n- For document assets, responses are based on both the metadata and content of the relevant documents within the query scope.\n\nThe response is streamed using SSE, where each event contains a chunk of the response. The final event will have `data: {Token: \"\", isComplete: true}`.\n",
        "operationId": "postQuestionGlobalStream",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ChatQuestionGlobal"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChatAnswerGlobalStream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/flows/{flowId}/schema": {
      "parameters": [
        {
          "$ref": "#/components/parameters/flowId"
        }
      ]
    },
    "/flows/{flowId}/runs": {
      "parameters": [
        {
          "$ref": "#/components/parameters/flowId"
        }
      ]
    },
    "/designs": {
      "get": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "List designs",
        "description": "Lists all `Design` settings, including the `Design` settings templates. They can be filtered by `type`, e.g., by `Player`.\n",
        "operationId": "listDesigns",
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "tags": [
          "Designs"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "post": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Create design from template",
        "description": "Creates `Design` settings from existing `Design` settings templates.",
        "operationId": "createDesignFromTemplate",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateDesignSettingsFromTemplate"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/designs/{designSettingsId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/designSettingsId"
        }
      ],
      "get": {
        "security": [
          {
            "oauth2": []
          }
        ],
        "summary": "Get design",
        "operationId": "getDesignSettings",
        "tags": [
          "Designs"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Delete design settings",
        "operationId": "deleteDesignSettings",
        "tags": [
          "Designs"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/designs/channel": {
      "post": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Create channel design template",
        "operationId": "createChannelDesignTemplate",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateChannelDesignTemplate"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/designs/{designSettingsId}/channel": {
      "parameters": [
        {
          "$ref": "#/components/parameters/designSettingsId"
        }
      ],
      "put": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Update channel design template",
        "operationId": "updateChannelDesignTemplate",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateChannelDesignTemplate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/designs/player": {
      "post": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Create player design template",
        "operationId": "createPlayerDesignTemplate",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreatePlayerDesignTemplate"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/designs/{designSettingsId}/player": {
      "parameters": [
        {
          "$ref": "#/components/parameters/designSettingsId"
        }
      ],
      "put": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Update player design template",
        "operationId": "updatePlayerDesignTemplate",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreatePlayerDesignTemplate"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/designs/docxexport": {
      "post": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Create DOCX export design",
        "description": "Creates new `Design` settings for customizing the formatting of `transcripts` exported to `DOCX`.\n",
        "operationId": "createDocxExportDesignSettings",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateDocxExportDesignSettings"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/designs/{designSettingsId}/docxexport": {
      "parameters": [
        {
          "$ref": "#/components/parameters/designSettingsId"
        }
      ],
      "put": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Update DOCX export design",
        "description": "Updates `Design` settings for customizing the formatting of `transcripts` exported to `DOCX`.\n",
        "operationId": "updateDocxExportDesignSettings",
        "tags": [
          "Designs"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateDocxExportDesignSettings"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/DesignSettings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/designs/{designSettingsId}/resources/{resourceType}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/designSettingsId"
        },
        {
          "$ref": "#/components/parameters/resourceType"
        }
      ],
      "get": {
        "security": [
          {
            "oauth2": []
          }
        ],
        "summary": "Get design resource",
        "description": "Downloads design setting resources, such as the `playButtonImage` or `channelLogo`.\n",
        "operationId": "getDesignSettingResource",
        "tags": [
          "Designs"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DesignSettingsResource"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "summary": "Update design resource",
        "operationId": "updateDesignSettingResource",
        "requestBody": {
          "$ref": "#/components/requestBodies/UploadDesignSettingResource"
        },
        "tags": [
          "Designs"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/OkObject"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Designs"
        ],
        "summary": "Delete design resource",
        "description": "Deletes `Design` setting resources.",
        "operationId": "deleteDesignSettingResource",
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/suggestions/{suggestionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/suggestionId"
        }
      ]
    },
    "/stories": {
      "post": {
        "summary": "Create interactive story",
        "description": "An interactive `Story` is based on `scenes` and enables an interactive video experience.\n",
        "operationId": "createInteractiveStory",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateStory"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Story"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "get": {
        "summary": "List stories",
        "description": "Retrieves a list of available stories.\nSupports the following advanced filtering and sorting options for the associated `quiz` data:\n**Filtering Options**:\n  - `filter=quiz=true`: Lists all `Story` objects that have an active `quiz` feature.\n  - `filter=quiz.isMandatory=true`: Lists all `Story` objects where the `quiz` is mandatory for the user.\n  - `filter=quiz.isOpenToTake=true`: Lists all `Story` objects where the `quiz` is currently open for the user to take an attempt.\n  - `filter=quiz.isSuccess=true`: Lists all `Story` objects with a successfully finished attempt and where showing the result is enabled.\n  - `filter=quiz.isFailure=true`: Lists all `Story` objects with a failed attempt and where showing the result is enabled.\n\n**Sorting Options**:\n  - `sort=quiz.dueUntilUtc:desc`: Sorts the list by the `quiz` expiry date in descending order.\n  - `sort=quiz.report.rate:desc`: Sorts the list by the latest attempt rate in descending order.\n  - `sort=quiz.latestAttemptUtc:desc`: Sorts the list by the latest attempt time in descending order.\n\n**Note:** Omitting `:desc` in the sorting parameter reverses the order to ascending. For example, `sort=quiz.dueUntilUtc` will sort by the expiry date in ascending order.\nLeveraging these filters and sorting parameters enables efficient querying of `Story` objects tailored to specific conditions and priorities.\n",
        "operationId": "listStories",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/StoryCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/stories/{storyId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ],
      "get": {
        "summary": "Get interactive story",
        "description": "Retrieves an interactive `Story` and loads all linked `scenes`, plus its associated `Overlay`s and `Interaction`s.",
        "operationId": "getInteractiveStory",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Story"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "delete": {
        "summary": "Delete interactive story",
        "description": "Deletes an interactive `Story` by its identifier. It will delete all linked `scenes` plus its associated `Overlay`s and `Interaction`s.",
        "operationId": "deleteInteractiveStory",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Stories"
        ],
        "summary": "Update interactive story",
        "description": "Updates an interactive `Story`'s name or description.",
        "operationId": "updateInteractiveStory",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateStory"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Story"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/stories/{storyId}/scenes": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ],
      "post": {
        "summary": "Create scene",
        "description": "A `scene` is the main element of an interactive `Story`. A scene can be linked to `Media` sections and holds a list of `Overlay`s and `Interaction`s.",
        "operationId": "createScene",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateScene"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Scene"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/stories/{storyId}/scenes/{sceneId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        }
      ],
      "put": {
        "summary": "Update scene",
        "description": "Updates a `scene` of an interactive `Story`.",
        "operationId": "updateScene",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateScene"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Scene"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete scene",
        "description": "Deletes a `scene` of an interactive `Story`, which also deletes all referenced `Interaction`s and `Overlay`s.",
        "operationId": "deleteScene",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/sections/{sectionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        },
        {
          "$ref": "#/components/parameters/sectionId"
        }
      ],
      "put": {
        "summary": "Link a section with a scene",
        "description": "The `Media` asset to which the `Section` belongs must be part of the interactive `Channel` of the `Story` object.",
        "operationId": "linkSceneToMediaSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "responses": {
          "201": {
            "$ref": "#/components/responses/Scene"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "delete": {
        "summary": "Unlink a section from a scene",
        "description": "Removes the association between a `scene` and a `Section`. Another `Section` can be linked to this `Story` `scene` afterward.",
        "operationId": "unlinkSceneFromMediaSection",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/interactions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        }
      ],
      "post": {
        "summary": "Create interaction",
        "description": "`Interaction`s inside a `scene` of an interactive `Story` require a user action (like an answer to a question) that leads to another `scene`, `Interaction`, or `Overlay`.\n",
        "operationId": "createInteraction",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Interactions"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Interaction"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Interaction"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/interactions/{interactionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        },
        {
          "$ref": "#/components/parameters/interactionId"
        }
      ],
      "put": {
        "summary": "Update interaction",
        "description": "Updates an `Interaction` of a `scene` within an interactive `Story`.",
        "operationId": "updateInteraction",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Interactions"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Interaction"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Interaction"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete interaction",
        "description": "Deletes an `Interaction` from an interactive `Story`. All referenced `options` of the `Interaction` will also be deleted.",
        "operationId": "deleteInteraction",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Interactions"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/interactions/{interactionId}/options": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        },
        {
          "$ref": "#/components/parameters/interactionId"
        }
      ],
      "post": {
        "summary": "Create option",
        "description": "Creates an `option` for a `scene` of an `Interaction` within an interactive `Story`.",
        "operationId": "createOption",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Interactions"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Option"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Option"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/interactions/{interactionId}/options/{optionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        },
        {
          "$ref": "#/components/parameters/interactionId"
        },
        {
          "$ref": "#/components/parameters/optionId"
        }
      ],
      "put": {
        "summary": "Update option",
        "description": "Updates an `option` of an `Interaction` within an interactive `Story`.",
        "operationId": "updateOption",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Interactions"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Option"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Option"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete option",
        "description": "Deletes an `option` from an `Interaction` within an interactive `Story`.",
        "operationId": "deleteOption",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Interactions"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/overlays": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        }
      ],
      "post": {
        "summary": "Create overlay",
        "description": "Creates an `overlay` for a `scene` of an interactive `Story`.",
        "operationId": "createOverlay",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Overlays"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Overlay"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Overlay"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/stories/{storyId}/scenes/{sceneId}/overlays/{overlayId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/sceneId"
        },
        {
          "$ref": "#/components/parameters/overlayId"
        }
      ],
      "put": {
        "summary": "Update overlay",
        "description": "Updates an `overlay` of a `scene` within an interactive `Story`.",
        "operationId": "updateOverlay",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Overlays"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Overlay"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Overlay"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete overlay",
        "description": "Deletes an `overlay` from a `scene` of an interactive `Story`.",
        "operationId": "deleteOverlay",
        "security": [
          {
            "oauth2": [
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Overlays"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/stories/{storyId}/members": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ],
      "get": {
        "summary": "List story members",
        "description": "Lists all members and their roles for a `Story`.\n",
        "operationId": "listStoryMembers",
        "security": [
          {
            "oauth2": [
              "ManagerMemberAssignments"
            ]
          }
        ],
        "tags": [
          "Stories"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/StoryMemberCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/stories/{storyId}/invite": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ]
    },
    "/quizzes/{storyId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ]
    },
    "/quizzes/{storyId}/questionsets": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ]
    },
    "/quizzes/{storyId}/questionsets/{setId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/setId"
        }
      ]
    },
    "/quizzes/{storyId}/questionsets/{setId}/questions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/setId"
        }
      ]
    },
    "/quizzes/{storyId}/questionsets/{setId}/generatequestion": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/setId"
        }
      ]
    },
    "/quizzes/{storyId}/questionsets/{setId}/questions/{questionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/setId"
        },
        {
          "$ref": "#/components/parameters/questionId"
        }
      ]
    },
    "/quizzes/{storyId}/attempts": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        }
      ]
    },
    "/quizzes/{storyId}/attempts/{attemptId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/attemptId"
        }
      ]
    },
    "/quizzes/{storyId}/attempts/{attemptId}/progress": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/attemptId"
        }
      ]
    },
    "/quizzes/{storyId}/attempts/{attemptId}/finish": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/attemptId"
        }
      ]
    },
    "/quizzes/{storyId}/attempts/{attemptId}/questionsets/{setId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/attemptId"
        },
        {
          "$ref": "#/components/parameters/setId"
        }
      ]
    },
    "/quizzes/{storyId}/attempts/{attemptId}/questionsets/{setId}/question/{questionId}/answer": {
      "parameters": [
        {
          "$ref": "#/components/parameters/storyId"
        },
        {
          "$ref": "#/components/parameters/attemptId"
        },
        {
          "$ref": "#/components/parameters/setId"
        },
        {
          "$ref": "#/components/parameters/questionId"
        }
      ]
    },
    "/tenants/current": {
      "get": {
        "summary": "Get current tenant",
        "description": "Retrieves the details of the current `Tenant`, i.e., its `name`, `shortcode`, and identifier.\n",
        "operationId": "getCurrentTenant",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Tenant"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/cultures": {
      "get": {
        "summary": "Get selectable cultures",
        "description": "Retrieves localized selectable cultures for a tenant. Any authenticated user can get available cultures.\n",
        "operationId": "getTenantSelectableCultures",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SelectableCulturesCollection"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/settings": {
      "get": {
        "summary": "Get current tenant settings",
        "operationId": "getCurrentTenantSettings",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TenantSettings"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "summary": "Update current tenant settings",
        "operationId": "updateCurrentTenantSettings",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Tenants"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TenantSettings"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/UpdatedObject"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/designs": {
      "get": {
        "summary": "Get current tenant designs",
        "operationId": "getCurrentTenantDesigns",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TenantDesigns"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "summary": "Update current tenant designs",
        "operationId": "updateCurrentTenantDesigns",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Tenants"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/TenantDesigns"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/UpdatedObject"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/statistics": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/tenantMetrics"
          },
          {
            "$ref": "#/components/parameters/tenantMetricsAssetType"
          },
          {
            "$ref": "#/components/parameters/includeRenditions"
          },
          {
            "$ref": "#/components/parameters/currentMonth"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "summary": "Get tenant statistics",
        "description": "Retrieves various metrics for the authenticated user's tenant, including media assets, users, channels, processing, and consumption.\n",
        "operationId": "getCurrentTenantStatistics",
        "security": [
          {
            "oauth2": [
              "ViewStatistics"
            ]
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TenantStatistics"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/resources/{resourceType}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/resourceType"
        }
      ],
      "get": {
        "summary": "Get tenant resource",
        "operationId": "getTenantResource",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TenantResource"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Tenants"
        ],
        "summary": "Upload tenant resource",
        "description": "Uploads `Tenant` resources like `channelMainImage` or `playButtonImage`. `Channel` resources can be considered as `Tenant` defaults for the `Channel` resources, but `designs` can also be [configured per `Channel`](#tag/Channels/operation/assignDesignToChannel).\n",
        "operationId": "uploadTenantResource",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UploadTenantResource"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/OkObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "delete": {
        "tags": [
          "Tenants"
        ],
        "summary": "Delete tenant resource",
        "description": "Enables the deletion of tenant resources.\n",
        "operationId": "deleteTenantResource",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/textresources/{tenantTextResourceType}/{languageCode}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantTextResourceType"
        },
        {
          "$ref": "#/components/parameters/languageCode"
        }
      ],
      "put": {
        "tags": [
          "Tenants"
        ],
        "summary": "Update text resource of a tenant",
        "description": "Tenant Administrators can change text resources of type `imprint` and `privacy`. Text resources of type `terms` are only editable by System Administrators.\n",
        "operationId": "updateTenantTextResource",
        "security": [
          {
            "oauth2": [
              "ManageTenant",
              "ManageSystem"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Text"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/TenantTextResource"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/tenants/current/speakers/{speakerId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/speakerId"
        }
      ]
    },
    "/tenants/current/metadatapresets": {
      "get": {
        "summary": "List metadata presets",
        "operationId": "getMetadataPresets",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/MetadataPresetCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/tenants/current/metadatapresets/transcription": {
      "get": {
        "summary": "List transcription language models",
        "description": "Retrieves the language models used for transcription that are preconfigured for the current tenant.\n",
        "operationId": "getMetadataTranscriptionLanguageModels",
        "parameters": [
          {
            "$ref": "#/components/parameters/speechRecognitionMode"
          }
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TranscriptLanguageModelCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      },
      "put": {
        "summary": "Update language models for transcription",
        "description": "Enables updating the available languages for transcription.\n",
        "operationId": "updateMetadataTranscriptionLanguageModels",
        "security": [
          {
            "oauth2": [
              "ManageSystem"
            ]
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateTransciptLanguageModels"
        },
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/TranscriptLanguageModelCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/tenants/current/subtitlelanguages": {
      "get": {
        "summary": "List subtitle languages",
        "description": "Retrieves the subtitle languages based on the available transcription languages of the tenant. Available languages may depend on the subscription plan.\n",
        "operationId": "getSubtitleLanguages",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Tenants"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/SubtitleLanguageCollection"
          },
          "404": {
            "$ref": "#/components/responses/Error"
          },
          "default": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/tenants/jobs/{tenantManagementJobId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantManagementJobId"
        }
      ]
    },
    "/tenants/{tenantShortcode}/account/forgotpassword": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantShortcode"
        }
      ]
    },
    "/users/{userId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/userId"
        }
      ]
    },
    "/users/{userId}/invite": {
      "parameters": [
        {
          "$ref": "#/components/parameters/userId"
        }
      ]
    },
    "/users/{userId}/usergroups/{userGroupId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/userId"
        },
        {
          "$ref": "#/components/parameters/userGroupId"
        }
      ]
    },
    "/usergroups/{userGroupId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/userGroupId"
        }
      ]
    },
    "/center/designs/{tenantShortcode}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantShortcode"
        }
      ]
    },
    "/center/systemsettings/{tenantShortcode}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantShortcode"
        }
      ]
    },
    "/center/designs/{tenantShortcode}/resources/{resourceType}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantShortcode"
        },
        {
          "$ref": "#/components/parameters/resourceType"
        }
      ]
    },
    "/center/textresources/{tenantShortcode}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantShortcode"
        }
      ]
    },
    "/center/textresources/{tenantShortcode}/{tenantTextResourceType}/{languageCode}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenantShortcode"
        },
        {
          "$ref": "#/components/parameters/tenantTextResourceType"
        },
        {
          "$ref": "#/components/parameters/languageCode"
        }
      ]
    },
    "/recommendations": {
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Get recommendations",
        "description": "Provides recommendations for `Media` `sections` in `Channel`s. One or more `Media` assets or `Media` `sections` can be provided as input to retrieve similar `sections` from specific `Channel`s.\n",
        "operationId": "recommendation",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/mediaIds"
          },
          {
            "$ref": "#/components/parameters/sectionIds"
          },
          {
            "$ref": "#/components/parameters/channelIds"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/recommendations/users/current": {
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Get recommendations for current user",
        "description": "Provides personalized recommendations based on user history.\n",
        "operationId": "currentUserRecommendation",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/recommendations/feedback": {
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "List recommendation feedback",
        "description": "Lists recommendation feedback.\n",
        "operationId": "listRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationFeedbackCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "post": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Create recommendation feedback",
        "description": "Adds recommendation feedback.\n",
        "operationId": "addRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateRecommendationFeedbackRequest"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/RecommendationFeedback"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/recommendations/feedback/{feedbackId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/recommendationFeedbackId"
        }
      ],
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Get recommendation feedback",
        "description": "Retrieves a specified recommendation feedback.\n",
        "operationId": "getRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationFeedback"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "delete": {
        "summary": "Delete recommendation feedback",
        "description": "Deletes a given recommendation feedback.\n",
        "operationId": "deleteRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Recommendations"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Update recommendation feedback",
        "description": "Updates recommendation feedback.\n",
        "operationId": "updateRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateRecommendationFeedbackRequest"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/RecommendationFeedback"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/recommendations/feedback/current": {
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Get current user recommendation feedback",
        "description": "Retrieves recommendation feedback for the current user.\n",
        "operationId": "currentUserRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationFeedbackCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/recommendations/feedback/users/{userId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/userId"
        }
      ],
      "get": {
        "tags": [
          "Recommendations"
        ],
        "summary": "Get user recommendation feedback",
        "description": "Retrieves recommendation feedback for a user.\n",
        "operationId": "userRecommendationFeedback",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/RecommendationFeedbackCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/history": {
      "get": {
        "tags": [
          "History"
        ],
        "summary": "Get tenant view history",
        "description": "Retrieves the view history of the tenant.\n",
        "operationId": "getHistory",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/HistoryResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/history/users/current": {
      "get": {
        "tags": [
          "History"
        ],
        "summary": "Get current user view history",
        "description": "Retrieves the view history of the current user.\n",
        "operationId": "currentUserHistory",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/HistoryResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/history/users/{userId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/userId"
        }
      ],
      "get": {
        "tags": [
          "History"
        ],
        "summary": "Get user view history",
        "description": "Retrieves the view history of a user.\n",
        "operationId": "userHistory",
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/HistoryResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/history/sessions/{sessionId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/sessionId"
        }
      ],
      "get": {
        "tags": [
          "History"
        ],
        "summary": "Get session view history",
        "description": "Retrieves the view history of a session.\n",
        "operationId": "sessionHistory",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/fromDate"
          },
          {
            "$ref": "#/components/parameters/toDate"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/HistoryResult"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/history/chats": {
      "get": {
        "summary": "List chats",
        "operationId": "ListChats",
        "tags": [
          "History"
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/ChatsCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          }
        }
      },
      "post": {
        "summary": "Create chat",
        "security": [
          {
            "oauth2": []
          }
        ],
        "operationId": "CreateChat",
        "tags": [
          "History"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateChat"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Chat"
          },
          "400": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          }
        }
      }
    },
    "/history/chats/{chatId}": {
      "get": {
        "summary": "Get chat",
        "operationId": "GetChat",
        "tags": [
          "History"
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/chatId"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Chat"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "summary": "Update chat",
        "operationId": "UpdateChat",
        "tags": [
          "History"
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/chatId"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateChat"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Chat"
          },
          "400": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "delete": {
        "summary": "Delete chat",
        "operationId": "DeleteChat",
        "tags": [
          "History"
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/chatId"
          }
        ],
        "responses": {
          "204": {
            "description": "Chat deleted."
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/history/chats/{chatId}/messages": {
      "put": {
        "summary": "Update chat messages",
        "operationId": "UpdateChatMessageHistory",
        "tags": [
          "History"
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/chatId"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateMessageHistory"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Chat"
          },
          "400": {
            "$ref": "#/components/responses/ErrorValidation"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/livestreams": {
      "get": {
        "tags": [
          "Livestreams"
        ],
        "summary": "List livestreams",
        "description": "Returns all `Livestream`s.\nFilters by status to list, e.g., all `finished` `Livestream`s.\n",
        "operationId": "listLivestreams",
        "security": [
          {
            "oauth2": [
              "ViewChannel"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LivestreamCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create livestream",
        "description": "Registers and configures a new `Livestream`.\nThis is the first step in the live-streaming workflow and can be called in advance of a live event.\nNext, call [start](#tag/Livestreams/operation/startLivestream) to activate the live ingest and receive the ingest URL.\n",
        "operationId": "createLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams",
              "CreateContent"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateLivestream"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Livestream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorUnprocessableEntity"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/livestreams/{livestreamId}/start": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        }
      ],
      "put": {
        "summary": "Start livestream",
        "description": "Starts a `Livestream` and activates the live ingest.\nOnce started, an RTMP encoder can connect to the provided `inputs` (with the stream key being the last part of the URL path).\nChoose a preferred encoder, like Open Broadcaster Software (OBS), FFmpeg, or others.\nThe `playouts` returned contain HLS playlist URLs for each input. This URL can be used in a (client-side) video player capable of HLS streaming video playback.\n",
        "operationId": "startLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Livestream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    },
    "/livestreams/{livestreamId}/live": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        }
      ],
      "put": {
        "summary": "Publish a livestream",
        "description": "Publishes a `Livestream` only if an active ingest is being delivered. It changes the status of the `Livestream` to `live` and updates the start timestamp of the video source to the publishing time.",
        "operationId": "publishLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Livestream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/livestreams/{livestreamId}/complete": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        }
      ],
      "put": {
        "summary": "Stop a livestream",
        "description": "Finishes a published `Livestream`, which updates the playlist URL and triggers the live-to-VOD conversion. When the live-to-VOD conversion is finished, a `Media` asset will be created.",
        "operationId": "stopLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Livestream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/livestreams/{livestreamId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        }
      ],
      "get": {
        "summary": "Get livestream",
        "description": "Loads all details of a `Livestream`, including `inputs` and `playouts`.",
        "operationId": "getLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Livestream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "patch": {
        "summary": "Update livestream",
        "description": "Updates editable properties of a `Livestream`.",
        "operationId": "updateLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateLivestream"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Livestream"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      },
      "delete": {
        "summary": "Delete livestream",
        "description": "Deletes the `Livestream` and all recorded artifacts. A `Livestream` that is currently being converted from live to VOD cannot be deleted. A `Livestream` in status `finished` was converted to a `Media` asset and cannot be deleted with this endpoint—use [deleteMedia](#tag/Media/operation/deleteMedia) with the `permanent` option to delete the finished `Livestream` and the derived `Media` asset.\n",
        "operationId": "deleteLivestream",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/livestreams/{livestreamId}/statistics": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        }
      ],
      "get": {
        "summary": "Get livestream stats overview",
        "description": "Retrieves the current number of RTMP and HLS connections for a `Livestream`. The `primary` section contains statistics for the main `Livestream`, and the `secondary` section contains statistics for the backup `Livestream`. The `sum` section contains the aggregation of both. Call repeatedly to build statistics over time. A typical use case is displaying the current number of watching users from `sum.hlsConnections`.",
        "operationId": "getLivestreamStatsOverview",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LivestreamStatisticsOverview"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/livestreams/{livestreamId}/statistics/{instance}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        },
        {
          "$ref": "#/components/parameters/livestreamInstance"
        }
      ],
      "get": {
        "summary": "Get livestream stats",
        "description": "Retrieves detailed `Livestream` statistics for a specific live streaming instance. Use instance `primary` for the main `Livestream` or `secondary` for the optional backup `Livestream`. Provides the complete history of statistical samples for the lifetime of the `Livestream`, sorted in descending order by createdAtUtc, ensuring the first page always contains the most recent samples. Repeatedly requesting this page supports the continuous collection of live statistics over time.",
        "operationId": "getLivestreamStats",
        "parameters": [
          {
            "$ref": "#/components/parameters/perPageExtendedLimit"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/LivestreamStatistics"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/livestreams/{livestreamId}/thumbnail": {
      "parameters": [
        {
          "$ref": "#/components/parameters/livestreamId"
        }
      ],
      "get": {
        "summary": "Get livestream thumbnail",
        "description": "Retrieves the thumbnail of a `Livestream`.\n",
        "operationId": "getLivestreamThumbnail",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "summary": "Update livestream thumbnail",
        "description": "Sets the thumbnail of a `Livestream`. <br /> Allowed image formats:\n  - `image/jpeg` \n  - `image/png`\n",
        "operationId": "addLivestreamThumbnail",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/ThumbnailNew"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Thumbnail"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete livestream thumbnail",
        "description": "Deletes the thumbnail of a `Livestream`.\n",
        "operationId": "deleteLivestreamThumbnail",
        "security": [
          {
            "oauth2": [
              "ManageLiveStreams"
            ]
          }
        ],
        "tags": [
          "Livestreams"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/portals/{portalId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/portalId"
        }
      ]
    },
    "/portals/{portalId}/channels": {
      "parameters": [
        {
          "$ref": "#/components/parameters/portalId"
        }
      ]
    },
    "/portals/{portalId}/media": {
      "parameters": [
        {
          "$ref": "#/components/parameters/portalId"
        }
      ]
    },
    "/portals/{portalId}/visibility": {
      "parameters": [
        {
          "$ref": "#/components/parameters/portalId"
        }
      ]
    },
    "/portals/components/{componentId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/componentId"
        }
      ]
    },
    "/portals/components/{componentId}/channels": {
      "parameters": [
        {
          "$ref": "#/components/parameters/componentId"
        }
      ]
    },
    "/portals/components/{componentId}/media": {
      "parameters": [
        {
          "$ref": "#/components/parameters/componentId"
        }
      ]
    },
    "/portals/components/{componentId}/visibility": {
      "parameters": [
        {
          "$ref": "#/components/parameters/componentId"
        }
      ]
    },
    "/portals/components/templates/{componentTemplateId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/componentTemplateId"
        }
      ]
    },
    "/portals/pagevariants/{pageVariantId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/pageVariantId"
        }
      ]
    },
    "/roles/tenant/{memberId}/assign": {
      "parameters": [
        {
          "$ref": "#/components/parameters/memberId"
        }
      ]
    },
    "/roles/tenant/{memberId}/unassign": {
      "parameters": [
        {
          "$ref": "#/components/parameters/memberId"
        }
      ]
    },
    "/roles/superadmin/{memberId}/assign": {
      "parameters": [
        {
          "$ref": "#/components/parameters/memberId"
        }
      ]
    },
    "/roles/superadmin/{memberId}/unassign": {
      "parameters": [
        {
          "$ref": "#/components/parameters/memberId"
        }
      ]
    },
    "/admin/tenants/current/flows/{flowId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/flowId"
        }
      ]
    },
    "/tokens/public": {
      "parameters": [
        {
          "$ref": "#/components/parameters/tenant"
        },
        {
          "$ref": "#/components/parameters/features"
        },
        {
          "$ref": "#/components/parameters/referer"
        }
      ]
    },
    "/meetings": {
      "get": {
        "summary": "List OParl meetings",
        "description": "Returns all available meetings retrieved from OParl endpoint",
        "operationId": "listMeetings",
        "parameters": [
          {
            "$ref": "#/components/parameters/listFilter"
          },
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "tags": [
          "Meetings"
        ],
        "security": [
          {
            "oauth2": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Meetings"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      }
    },
    "/meetings/{meetingId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/meetingId"
        }
      ],
      "get": {
        "summary": "Get meeting",
        "description": "Retrieves a `Meeting` by its identifier.\n",
        "operationId": "getMeeting",
        "security": [
          {
            "oauth2": []
          }
        ],
        "tags": [
          "Meetings"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Meeting"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/webhooks": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "List webhooks",
        "description": "Returns a list of `Webhook`s the user has created.\n",
        "operationId": "listWebhooks",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/perPage"
          },
          {
            "$ref": "#/components/parameters/pageNumber"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/WebhookCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          }
        }
      },
      "post": {
        "summary": "Create webhook",
        "description": "Creates a new `Webhook` for the current user targeting the given `url`. Each user is limited to a specific number of active webhooks. If this limit is reached, the create request will result in an error. The limit per user can be found in `Tenant` system settings.\n",
        "operationId": "createWebhook",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Webhooks"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateWebhook"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Webhook"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        },
        "x-codegen-request-body-name": "body"
      }
    },
    "/webhooks/{webhookId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/webhookId"
        }
      ],
      "get": {
        "summary": "Get webhook",
        "description": "Retrieves a `Webhook` by its identifier.\n",
        "operationId": "getWebhook",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Webhook"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      },
      "put": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Update webhook",
        "description": "Updates a `Webhook` with the provided configuration.\n",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "operationId": "updateWebhook",
        "requestBody": {
          "$ref": "#/components/requestBodies/CreateWebhook"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Webhook"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      },
      "delete": {
        "summary": "Delete webhook",
        "description": "Deletes a `Webhook` by its identifier.\n",
        "operationId": "deleteWebhook",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/DeletedObject"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/webhooks/{webhookId}/ping": {
      "parameters": [
        {
          "$ref": "#/components/parameters/webhookId"
        }
      ],
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Ping webhook",
        "description": "Generates a `ping` event to test the `Webhook` configuration.",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "operationId": "pingWebhook",
        "responses": {
          "204": {
            "description": "A ping webhook request was scheduled successfully."
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/Error"
          }
        }
      }
    },
    "/webhooks/{webhookId}/deliveries": {
      "parameters": [
        {
          "$ref": "#/components/parameters/webhookId"
        },
        {
          "$ref": "#/components/parameters/pageNumber"
        },
        {
          "$ref": "#/components/parameters/perPage"
        }
      ],
      "get": {
        "summary": "List webhook deliveries",
        "description": "Lists a `Webhook`'s delivery logs.\n",
        "operationId": "listWebhookDeliveryLogs",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/WebhookDeliveryCollection"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/webhooks/{webhookId}/deliveries/{deliveryId}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/webhookId"
        },
        {
          "$ref": "#/components/parameters/webhookDeliveryLogId"
        }
      ],
      "get": {
        "summary": "Get webhook delivery",
        "description": "Retrieves a `Webhook` delivery log.\n",
        "operationId": "getWebhookDeliveryLog",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "tags": [
          "Webhooks"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/WebhookDelivery"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          }
        }
      }
    },
    "/webhooks/{webhookId}/deliveries/{deliveryId}/retry": {
      "parameters": [
        {
          "$ref": "#/components/parameters/webhookId"
        },
        {
          "$ref": "#/components/parameters/webhookDeliveryLogId"
        }
      ],
      "put": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Repeat webhook delivery",
        "description": "Retries a failed `Webhook` delivery.\n",
        "security": [
          {
            "oauth2": [
              "ManageTenant"
            ]
          }
        ],
        "operationId": "retryWebhookDelivery",
        "responses": {
          "200": {
            "$ref": "#/components/responses/WebhookDelivery"
          },
          "401": {
            "$ref": "#/components/responses/ErrorUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/ErrorForbidden"
          },
          "404": {
            "$ref": "#/components/responses/ErrorNotFound"
          },
          "422": {
            "$ref": "#/components/responses/ErrorValidation"
          }
        }
      }
    }
  },
  "x-webhooks": {
    "webhook": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Webhook",
        "security": [],
        "description": "HTTP POST request sent to the URL used in [webhook creation](#tag/Webhooks/operation/createWebhook).\n",
        "operationId": "webhookEventEmit",
        "requestBody": {
          "$ref": "#/components/requestBodies/WebhookPayload"
        },
        "responses": {
          "2xx": {
            "description": "Indicate successful event delivery to configured url."
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "listFilter": {
        "name": "filter",
        "in": "query",
        "required": false,
        "description": "The properties to filter the result with. In case of multiple filters, use '+' (has to be URL encoded, %2b)",
        "example": "name=Demo or tags=tag1 or origin=fileupload or tags=tag1%2btags=tag2",
        "schema": {
          "type": "string"
        }
      },
      "sort": {
        "name": "sort",
        "in": "query",
        "description": "The sort property name and order (add \":desc\" for descending). Properties from response object can be used, which are simple (non-complex) properties. Only a single field is supported.",
        "example": "name or name:desc",
        "style": "form",
        "explode": false,
        "schema": {
          "type": "string"
        }
      },
      "perPage": {
        "name": "perpage",
        "in": "query",
        "description": "Number of items returned per response.",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "exclusiveMinimum": true,
          "maximum": 50,
          "exclusiveMaximum": false,
          "default": 10
        }
      },
      "pageNumber": {
        "name": "page",
        "in": "query",
        "description": "Page number (0-based) of paginated results.",
        "schema": {
          "type": "integer",
          "default": 0
        }
      },
      "permanentDeletion": {
        "name": "permanent",
        "in": "query",
        "description": "If `true` a hard-deletion for the `Media` asset is performed.",
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "bulkAssignTagsOperation": {
        "name": "operation",
        "in": "query",
        "description": "An optional parameter for bulk assigning/removing `Tags` to `Media` assets.\n",
        "schema": {
          "type": "string",
          "enum": [
            "add",
            "remove"
          ],
          "default": "add"
        }
      },
      "mediaId": {
        "name": "mediaId",
        "in": "path",
        "description": "The `Media` asset resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "channelIdQueryString": {
        "name": "channelId",
        "in": "query",
        "description": "The channel resource identifier",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "commentId": {
        "name": "commentId",
        "in": "path",
        "description": "The comment resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "optionalChapterId": {
        "name": "chapterId",
        "in": "query",
        "description": "Optional chapter reference",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "includeLinked": {
        "name": "includeLinked",
        "in": "query",
        "description": "Linked `Sections` are ones used in `Media` chapters or of type `Scene` used in `InteractiveStory` `scene`.\n",
        "example": true,
        "schema": {
          "type": "boolean"
        }
      },
      "includeAllChapterSections": {
        "name": "includeAllChapterSections",
        "in": "query",
        "description": "Deprecated parameter which is replaced by above `includeLinked`\n",
        "example": true,
        "deprecated": true,
        "schema": {
          "type": "boolean"
        }
      },
      "sectionId": {
        "name": "sectionId",
        "in": "path",
        "description": "The `Section` resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "chapterId": {
        "name": "chapterId",
        "in": "path",
        "description": "The media chapter resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "entryId": {
        "name": "entryId",
        "in": "path",
        "description": "The entry resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "metadataCollectionExpand": {
        "name": "expand",
        "in": "query",
        "description": "Expand details in a response to get the related objects. A comma-separated list of objects to expand is required. All metadata can be expanded, except transcripts, please use own endpoint for that.\n",
        "example": "entities,keywords",
        "schema": {
          "type": "string",
          "enum": [
            "keywords",
            "entities",
            "speakers",
            "scenes",
            "objects",
            "actions",
            "imageTexts",
            "videoTexts",
            "documentContent",
            "file"
          ]
        }
      },
      "transcriptId": {
        "name": "transcriptId",
        "in": "path",
        "description": "The transcript resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "paragraphId": {
        "name": "paragraphId",
        "in": "query",
        "description": "The ID of the paragraph which is to be updated.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
        }
      },
      "word": {
        "name": "word",
        "in": "query",
        "description": "the index of the word inside the paragraph which will be edited",
        "schema": {
          "type": "integer",
          "default": 0
        }
      },
      "merge": {
        "name": "merge",
        "in": "query",
        "description": "An optional parameter for `paragraph` merging, `previous` means the previous `paragraph` will be deleted, `next` means the next one will be deleted.\n",
        "schema": {
          "type": "string",
          "enum": [
            "previous",
            "next"
          ]
        }
      },
      "transcriptDownloadType": {
        "name": "transcriptDownloadType",
        "in": "query",
        "required": true,
        "description": "File format in which `Transcript` should be downloaded. Including the `Subtitle` format `SRT`.",
        "schema": {
          "$ref": "#/components/schemas/TranscriptDownloadType"
        }
      },
      "omitSpeakerLabels": {
        "name": "omitSpeakerLabels",
        "in": "query",
        "required": false,
        "description": "Specifies if speaker labels should be omitted from the exports (default is that speaker labels are included).",
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "exportTemplateId": {
        "name": "templateDesignSettingsId",
        "in": "query",
        "description": "The template design settings identifier for the `DOCX` export.",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/NullableResourceId"
        }
      },
      "languageCode": {
        "name": "languageCode",
        "in": "path",
        "description": "Language codes following the [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) standard.\n",
        "example": "de",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "subtitleStart": {
        "name": "start",
        "in": "query",
        "description": "Start for subtitle text in milliseconds.",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "example": 0,
          "default": 0
        }
      },
      "subtitleDuration": {
        "name": "duration",
        "in": "query",
        "description": "Duration for subtitle in milliseconds. Defaults to the entire subtitle length.",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "example": 5600
        }
      },
      "attachmentId": {
        "name": "attachmentId",
        "in": "path",
        "description": "The file attachment resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "searchType": {
        "name": "type",
        "in": "query",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/SearchType"
        }
      },
      "searchFields": {
        "name": "fields",
        "in": "query",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/SearchFields"
        }
      },
      "searchText": {
        "name": "text",
        "in": "query",
        "description": "Search query text.",
        "example": "Jane%Doe",
        "schema": {
          "type": "string"
        }
      },
      "searchFilterAssetTypes": {
        "name": "assettypes",
        "in": "query",
        "description": "`Media` asset types to filter for.\n",
        "schema": {
          "$ref": "#/components/schemas/SearchFilterAssetTypes"
        }
      },
      "searchFilterSpeakers": {
        "name": "speakers",
        "in": "query",
        "description": "Speakers to filter for.",
        "example": [
          "Sprecher 1",
          "Sprecher 2"
        ],
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "searchFilterEntities": {
        "name": "entities",
        "in": "query",
        "description": "Entities to filter for.",
        "example": [
          "Max Mustermann",
          "Klagenfurt"
        ],
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "searchFilterActions": {
        "name": "actions",
        "in": "query",
        "description": "Actions to filter for.",
        "example": [
          "Kommunikation"
        ],
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "searchFilterObjects": {
        "name": "objects",
        "in": "query",
        "description": "Objects to filter for.",
        "example": [
          "Person",
          "Esstisch"
        ],
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "searchFilterKeywords": {
        "name": "keywords",
        "in": "query",
        "description": "Keywords to filter for.",
        "example": [
          "vertreter",
          "lehrer"
        ],
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "searchFilterFilesizeFrom": {
        "name": "filesizefrom",
        "in": "query",
        "description": "Minimum value for the filesize (in bytes) to filter for.",
        "example": 100000000,
        "schema": {
          "type": "integer",
          "format": "int64",
          "nullable": true
        }
      },
      "searchFilterFilesizeTo": {
        "name": "filesizeto",
        "in": "query",
        "description": "Maximum value for the filesize (in bytes) to filter for.",
        "example": 1000000000,
        "schema": {
          "type": "integer",
          "format": "int64",
          "nullable": true
        }
      },
      "searchFilterBitrateFrom": {
        "name": "bitratefrom",
        "in": "query",
        "description": "Minimum value for bitrate (in Kbps) to filter for. For videos it is the bitrate for the video stream (even if it also has audio), for audios it is the bitrate for the audio stream.",
        "example": 1048576,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterBitrateTo": {
        "name": "bitrateto",
        "in": "query",
        "description": "Maximum value for bitrate (in Kbps) to filter for. For videos it is the bitrate for the video stream (even if it also has audio), for audios it is the bitrate for the audio stream.",
        "example": 8388608,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterDurationFrom": {
        "name": "durationfrom",
        "in": "query",
        "description": "Minimum value for duration (in seconds) to filter for.",
        "example": 300,
        "schema": {
          "type": "number",
          "format": "double",
          "nullable": true
        }
      },
      "searchFilterDurationTo": {
        "name": "durationto",
        "in": "query",
        "description": "Maximum value for duration (in seconds) to filter for.",
        "example": 3600,
        "schema": {
          "type": "number",
          "format": "double",
          "nullable": true
        }
      },
      "searchFilterResolutionWidthFrom": {
        "name": "widthfrom",
        "in": "query",
        "description": "Minimum value for the video width (in pixels) to filter for.",
        "example": 1024,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterResolutionWidthTo": {
        "name": "widthto",
        "in": "query",
        "description": "Maximum value for the video width (in pixels) to filter for.",
        "example": 1280,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterResolutionHeightFrom": {
        "name": "heightfrom",
        "in": "query",
        "description": "Minimum value for the video height (in pixels) to filter for.",
        "example": 768,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterResolutionHeightTo": {
        "name": "heightto",
        "in": "query",
        "description": "Maximum value for the video height (in pixels) to filter for.",
        "example": 1024,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterTags": {
        "name": "tags",
        "in": "query",
        "description": "Tags to filter for.",
        "example": [
          "highlights",
          "favourites"
        ],
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "searchFilterChannelId": {
        "name": "channelId",
        "in": "query",
        "description": "Restrict the `Search` to the specified `Channel`, all global search filters remain applicable.",
        "example": "ec016ce5-f4c0-48e0-8588-1a62af00503f",
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "searchFilterMediaAssetId": {
        "name": "mediaAssetId",
        "in": "query",
        "description": "Search within a dedicated MediaAsset, following global Search fields are allowed - Description, Transcript, Speakers, Entities, Keywords, Objects, Actions",
        "example": "0fb1b6bb-039d-4e00-8a1c-ec93b38390d8",
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "searchFilterSpeakerId": {
        "name": "speakerId",
        "in": "query",
        "description": "Filter search result by the id of a speaker",
        "example": "ec016ce5-f4c0-48e0-8588-1a62af00503f",
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "searchFilterCreatedByUserId": {
        "name": "createdByUserId",
        "in": "query",
        "description": "Search for content which was created by a dedicated user",
        "example": "0fb1b6bb-039d-4e00-8a1c-ec93b38390d8",
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "searchFilterCreatedBy": {
        "name": "createdBy",
        "in": "query",
        "description": "Search for content which was created by some name, surname or username of a user in our system",
        "example": "mustermann",
        "schema": {
          "type": "string"
        }
      },
      "searchFilterIncludeSoftDeleted": {
        "name": "includeSoftDeleted",
        "in": "query",
        "description": "Includes soft-deleted `Media` assets. Default value is `false`, i.e. no soft-deleted assets are included.",
        "example": true,
        "schema": {
          "type": "boolean",
          "nullable": true,
          "default": false
        }
      },
      "searchFilterDpiFrom": {
        "name": "dpifrom",
        "in": "query",
        "description": "Minimum value for image dots per inch to filter for.",
        "example": 200,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterDpiTo": {
        "name": "dpito",
        "in": "query",
        "description": "Maximum value for image dots per inch to filter for.",
        "example": 300,
        "schema": {
          "type": "integer",
          "nullable": true
        }
      },
      "searchFilterAfter": {
        "name": "after",
        "in": "query",
        "description": "Search for content which was created after given date-time",
        "example": "2024-04-12T23:20:50.52Z",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "searchFilterBefore": {
        "name": "before",
        "in": "query",
        "description": "Search for content which was created before given date-time",
        "example": "2025-02-12T21:10:50.12Z",
        "schema": {
          "type": "string",
          "format": "date-time"
        }
      },
      "searchPresetId": {
        "name": "searchPresetId",
        "in": "query",
        "description": "If set, it applies a predefined `Search` request from a saved `Search` preset. Any `Search` parameters that are defined in addition take precedence over the saved parameters.",
        "example": "0fb1b6bb-039d-4e00-8a1c-ec93b38390d8",
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "searchPresetIdPath": {
        "name": "searchPresetId",
        "in": "path",
        "description": "Id of the `Search` preset",
        "example": "0fb1b6bb-039d-4e00-8a1c-ec93b38390d8",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "hotwordId": {
        "name": "hotwordId",
        "in": "path",
        "description": "The `hotword` resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "uploadId": {
        "name": "uploadId",
        "in": "path",
        "description": "The upload resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "optionalChannelId": {
        "name": "channelId",
        "in": "query",
        "description": "The id of a Channel of type group where the upload should be moved",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "ignoreDuplicates": {
        "name": "ignoreDuplicates",
        "in": "query",
        "description": "If true, the upload will completed also if there is a duplicate Asset in the tenant",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "optionalUserId": {
        "name": "userId",
        "in": "query",
        "description": "Optional user reference",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "filesImportId": {
        "name": "filesImportId",
        "in": "path",
        "description": "The files import identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "downloadId": {
        "name": "downloadId",
        "in": "path",
        "description": "The download resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "tagId": {
        "name": "tagId",
        "in": "path",
        "description": "The `Tag` resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "channelCollectionExpand": {
        "name": "expand",
        "in": "query",
        "description": "Expand details in a response to get the related objects. A comma-separated list of objects to expand is required. Currently supported: media.\n",
        "example": "media",
        "schema": {
          "type": "string"
        }
      },
      "compressed": {
        "name": "compressed",
        "in": "query",
        "description": "Compress channel to simplified model. Skips pagination.\n",
        "example": true,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "channelId": {
        "name": "channelId",
        "in": "path",
        "description": "The channel resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "forceToggle": {
        "name": "force",
        "in": "query",
        "description": "Force new state of toggled entity.\n",
        "example": true,
        "schema": {
          "type": "boolean",
          "nullable": true
        }
      },
      "memberId": {
        "name": "memberId",
        "in": "path",
        "description": "The member resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "tenantShortcode": {
        "name": "tenantShortcode",
        "in": "path",
        "description": "Unique shortcode of a tenant - equals to realm name in Keycloak",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "designSettingsId": {
        "name": "designSettingsId",
        "in": "path",
        "description": "The `design` settings identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "flowId": {
        "name": "flowId",
        "in": "path",
        "description": "The `flow` resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "resourceType": {
        "name": "resourceType",
        "in": "path",
        "description": "Specify the resource type. The supported [MIME types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) per resource type are:\n  - `image/png` for `channelMainImage`, `playButtonImage`, `overlayPlayerLogo` and `toolbarPlayerLogo`\n  - `image/svg+xml` for `channelLogo` and `centerLogo`\n  - `image/jpeg` for `centerMainImage`, `facebookShareImage` and `twitterShareImage`\n  - `font/woff` for `channelHeaderfont`, `channelBodyfont` and `centerFont`\n  - `image/x-icon` for  `channelFavicon` and `centerFavicon`\n",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "centerMainImage",
            "centerLogo",
            "centerFont",
            "centerFavicon",
            "channelMainImage",
            "channelLogo",
            "channelHeaderfont",
            "channelBodyfont",
            "channelFavicon",
            "facebookShareImage",
            "twitterShareImage",
            "playButtonImage",
            "overlayPlayerLogo",
            "toolbarPlayerLogo"
          ]
        }
      },
      "suggestionId": {
        "name": "suggestionId",
        "in": "path",
        "description": "The suggestion resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "storyId": {
        "name": "storyId",
        "in": "path",
        "description": "The story resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "sceneId": {
        "name": "sceneId",
        "in": "path",
        "description": "The scene resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "interactionId": {
        "name": "interactionId",
        "in": "path",
        "description": "The interaction resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "optionId": {
        "name": "optionId",
        "in": "path",
        "description": "The option resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "overlayId": {
        "name": "overlayId",
        "in": "path",
        "description": "The overlay resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "setId": {
        "name": "setId",
        "in": "path",
        "description": "The `question set` resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "questionId": {
        "name": "questionId",
        "in": "path",
        "description": "The `question` resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "attemptId": {
        "name": "attemptId",
        "in": "path",
        "description": "The `quiz attempt` resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "tenantMetrics": {
        "name": "metrics",
        "in": "query",
        "description": "A list of metrics to return (all metrics are included by default)",
        "required": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "totalUploadCount",
              "totalStorageUsage",
              "totalMediaDuration",
              "totalMediaAssetCount",
              "totalAdminsCount",
              "totalUsersCount",
              "privateChannelsCount",
              "publicChannelsCount",
              "tagsCount",
              "totalMediaTimeWatched",
              "totalMediaDurationProcessed"
            ]
          }
        }
      },
      "tenantMetricsAssetType": {
        "name": "assetType",
        "in": "query",
        "description": "An asset type to limit asset-related metrics to (all asset types are considered by default)",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/MediaType"
        }
      },
      "includeRenditions": {
        "name": "includeRenditions",
        "in": "query",
        "description": "A flag which determines whether to include all media asset renditions in `totalStorageUsage`  (not included by default)",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "currentMonth": {
        "name": "currentMonth",
        "in": "query",
        "description": "A flag which determines whether the metrics should be limited to the current month (no limitation by default; overrides `from` and `to` dates if `true`)",
        "required": false,
        "schema": {
          "type": "boolean"
        }
      },
      "fromDate": {
        "name": "from",
        "in": "query",
        "description": "From date",
        "schema": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "description": "start date for filtering results",
          "example": "2020-04-12T23:20:50.52Z",
          "nullable": true
        }
      },
      "toDate": {
        "name": "to",
        "in": "query",
        "description": "To date",
        "schema": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "description": "end date for filtering results",
          "example": "2020-04-12T23:20:50.52Z",
          "nullable": true
        }
      },
      "tenantTextResourceType": {
        "name": "tenantTextResourceType",
        "in": "path",
        "description": "type of the text resource",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "imprint",
            "privacy",
            "terms"
          ]
        }
      },
      "speakerId": {
        "name": "speakerId",
        "in": "path",
        "description": "The speaker identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "speechRecognitionMode": {
        "name": "mode",
        "in": "query",
        "required": false,
        "description": "Speech Recognition mode to transcribe the `Media`.",
        "schema": {
          "type": "string",
          "enum": [
            "turbo",
            "standard"
          ],
          "nullable": true
        }
      },
      "tenantManagementJobId": {
        "name": "tenantManagementJobId",
        "in": "path",
        "description": "The tenantManagementJob resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "userId": {
        "name": "userId",
        "in": "path",
        "description": "The user resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "userGroupId": {
        "name": "userGroupId",
        "in": "path",
        "description": "The userGroup resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "mediaIds": {
        "name": "mediaIds",
        "in": "query",
        "description": "A set of `Media` ids to use as seed.",
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RessourceId"
          }
        }
      },
      "sectionIds": {
        "name": "sectionIds",
        "in": "query",
        "description": "A set of `Section` ids to use as seed.",
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RessourceId"
          }
        }
      },
      "channelIds": {
        "name": "channelIds",
        "in": "query",
        "description": "A set of `Channel` resource identifier",
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/RessourceId"
          }
        }
      },
      "recommendationFeedbackId": {
        "name": "feedbackId",
        "in": "path",
        "description": "The recommendation feedback resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "sessionId": {
        "name": "sessionId",
        "in": "path",
        "description": "The view history session resource identifier.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/SessionId"
        }
      },
      "chatId": {
        "name": "chatId",
        "in": "path",
        "description": "The `chat` resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "livestreamId": {
        "name": "livestreamId",
        "in": "path",
        "description": "The `Livestream` resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "livestreamInstance": {
        "name": "instance",
        "in": "path",
        "description": "type of the `Livestream` ingest instance",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "primary",
            "secondary"
          ]
        }
      },
      "perPageExtendedLimit": {
        "name": "perpage",
        "in": "query",
        "description": "Number of items returned per response.",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": 0,
          "exclusiveMinimum": true,
          "maximum": 1000,
          "exclusiveMaximum": false,
          "default": 10
        }
      },
      "portalId": {
        "name": "portalId",
        "in": "path",
        "description": "The portal identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "componentId": {
        "name": "componentId",
        "in": "path",
        "description": "The component identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "componentTemplateId": {
        "name": "componentTemplateId",
        "in": "path",
        "description": "The component template identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "pageVariantId": {
        "name": "pageVariantId",
        "in": "path",
        "description": "The page variant identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "tenant": {
        "name": "X-SD-Tenant-Shortcode",
        "in": "header",
        "description": "An optional header specifying the tenant's shortcode when requesting a public access token.\n",
        "schema": {
          "type": "string"
        }
      },
      "features": {
        "name": "X-SD-Features",
        "in": "header",
        "description": "An optional header specifying a comma-separated list of features required when requesting a public access token.\n",
        "schema": {
          "type": "string"
        }
      },
      "referer": {
        "name": "Referer",
        "in": "header",
        "description": "Some features may require this HTTP header to be present.\n",
        "schema": {
          "type": "string"
        }
      },
      "meetingId": {
        "name": "meetingId",
        "in": "path",
        "description": "The meeting resource identifier",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "webhookId": {
        "name": "webhookId",
        "in": "path",
        "description": "The webhook resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      },
      "webhookDeliveryLogId": {
        "name": "deliveryId",
        "in": "path",
        "description": "The webhook delivery log resource identifier",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/RessourceId"
        }
      }
    },
    "headers": {
      "xTotalCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of items"
      },
      "xVideoCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of `Media` of type Video."
      },
      "xAudioCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of `Media` of type Audio."
      },
      "xImageCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of `Media` of type Image."
      },
      "xDocumentCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of `Media` of type Document."
      },
      "xLiveStreamCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of `Media` of type Livestream."
      },
      "xSoftDeletedCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of deleted `Media`."
      },
      "xGroupCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of Channels of type Group"
      },
      "xUserCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of Channels of type User"
      },
      "xInteractiveCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of Channels of type Interactive"
      },
      "xPublicCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total count of Channels of visibility Public"
      },
      "xPrivateCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total number of private group `Channel`s"
      },
      "xSharedCount": {
        "schema": {
          "type": "integer"
        },
        "description": "Total number of shared group `Channel`s"
      }
    },
    "schemas": {
      "BaseResponse": {
        "type": "object",
        "description": "Base response",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "success",
              "fail",
              "error"
            ]
          }
        },
        "required": [
          "status"
        ]
      },
      "AuditUser": {
        "type": "object",
        "description": "Represents the user associated with the audited action.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true,
            "description": "id of the user, 'B9502228-C03B-4DC1-8513-867FCCC4DEEF' for System user, 'B1206458-50F2-4F4E-B53E-DC7486ADF785' for Anonymous user",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "original user name, 'System' for system user, 'Anonymous' for Anonymous user",
            "example": "max.mustermann@example.org"
          }
        }
      },
      "Audit": {
        "type": "object",
        "description": "Default object audit timestamps.",
        "readOnly": true,
        "properties": {
          "createdAtUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Moment when the object was created.",
            "example": "2020-04-12T23:20:50.52Z"
          },
          "createdBy": {
            "readOnly": true,
            "nullable": true,
            "$ref": "#/components/schemas/AuditUser"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Moment when the object was last updated.",
            "example": "2020-09-16T23:20:50.52Z"
          },
          "updatedBy": {
            "readOnly": true,
            "nullable": true,
            "$ref": "#/components/schemas/AuditUser"
          }
        }
      },
      "DefaultObject": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true,
            "description": "The object identifier.",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "audit": {
            "$ref": "#/components/schemas/Audit"
          }
        }
      },
      "AuditUserWriteable": {
        "type": "object",
        "description": "Represents the user associated with the audited action.",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "id of the user, 'B9502228-C03B-4DC1-8513-867FCCC4DEEF' for System user, 'B1206458-50F2-4F4E-B53E-DC7486ADF785' for Anonymous user",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "name": {
            "type": "string",
            "description": "original user name, 'System' for system user, 'Anonymous' for Anonymous user",
            "example": "max.mustermann@example.org"
          }
        }
      },
      "AuditWriteable": {
        "type": "object",
        "description": "Default object audit timestamps.",
        "properties": {
          "createdAtUtc": {
            "type": "string",
            "format": "date-time",
            "description": "Moment when the object was created.",
            "example": "2020-04-12T23:20:50.52Z"
          },
          "createdBy": {
            "nullable": true,
            "$ref": "#/components/schemas/AuditUserWriteable"
          },
          "updatedAtUtc": {
            "type": "string",
            "format": "date-time",
            "description": "Moment when the object was last updated.",
            "example": "2020-09-16T23:20:50.52Z"
          },
          "updatedBy": {
            "nullable": true,
            "$ref": "#/components/schemas/AuditUserWriteable"
          }
        }
      },
      "DefaultObjectWriteable": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The object identifier.",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "audit": {
            "$ref": "#/components/schemas/AuditWriteable"
          }
        }
      },
      "UpdateMediaAsset": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Aufzeichnung Vortrag Dr. Klöbner",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "example": "Der Vortrag Dr. Klöbner - Lorem ipsum dolor sit."
          },
          "copyright": {
            "type": "string",
            "example": "(c) Dr. Klöbner 2022"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "MuellerLuedenscheidt",
              "Kloebner",
              "Duck"
            ]
          },
          "dateTimeOriginalUtc": {
            "type": "string",
            "format": "date-time",
            "example": "2020-04-12T23:20:50.52Z",
            "description": "Date the `Media` was originally created. Recording date for video or audio type assets.\n",
            "nullable": true
          }
        }
      },
      "MediaType": {
        "readOnly": true,
        "type": "string",
        "enum": [
          "video",
          "audio",
          "image",
          "document",
          "livestream"
        ]
      },
      "MediaAssetError": {
        "type": "object",
        "nullable": true,
        "description": "Details about issues encountered during the `Media` processing.\n",
        "properties": {
          "type": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "ingestError",
              "deletionError",
              "liveToVodConversionError"
            ]
          },
          "message": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "Message detailing the error details encountered while processing `Media`."
          }
        }
      },
      "Preview": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "example": "https://cdn.streamdiver.com/vod-tenant/_definst_/amlst:2021/03/d2f3f6a0-a186-4156-b784-248de16e9e2a/playlist.m3u8"
          }
        }
      },
      "Thumbnail": {
        "type": "object",
        "properties": {
          "height": {
            "type": "integer",
            "format": "int32",
            "example": 640
          },
          "width": {
            "type": "integer",
            "format": "int32",
            "example": 480
          },
          "url": {
            "type": "string",
            "example": "https://api.streamdiver.com/v2/thumbnails?bucket=yourBucket&objectKey=thumbnails/2023/04/10428f95-d112-4150-bde9-a103073287zu.jpg"
          }
        }
      },
      "BaseMedia": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObjectWriteable"
          },
          {
            "$ref": "#/components/schemas/UpdateMediaAsset"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "$ref": "#/components/schemas/MediaType"
              },
              "status": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "ready",
                  "processing",
                  "softDeleted",
                  "deletionRequested"
                ]
              },
              "error": {
                "$ref": "#/components/schemas/MediaAssetError"
              },
              "preview": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Preview"
                  }
                ]
              },
              "thumbnail": {
                "$ref": "#/components/schemas/Thumbnail"
              }
            }
          }
        ]
      },
      "File": {
        "type": "object",
        "description": "Default file object.",
        "properties": {
          "name": {
            "type": "string",
            "readOnly": true,
            "example": "my_video.mov",
            "maxLength": 255
          },
          "size": {
            "type": "integer",
            "format": "int64",
            "readOnly": true,
            "example": 123456789
          },
          "mimeType": {
            "type": "string",
            "readOnly": true,
            "example": "video/quicktime"
          },
          "hash": {
            "type": "string",
            "readOnly": true,
            "example": "a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a"
          },
          "duration": {
            "type": "string",
            "readOnly": true,
            "example": "10:20:05"
          },
          "durationInMilliseconds": {
            "type": "number",
            "format": "double",
            "readOnly": true,
            "example": 1596
          },
          "aspectRatio": {
            "type": "string",
            "readOnly": true,
            "example": "16:9"
          }
        }
      },
      "UsageSummary": {
        "type": "object",
        "description": "Summary of usage statistics for a given `Media` asset.",
        "properties": {
          "views": {
            "type": "integer",
            "format": "int64",
            "example": 100
          },
          "downloads": {
            "type": "integer",
            "format": "int64",
            "example": 3
          }
        }
      },
      "FeedbackSummary": {
        "type": "object",
        "description": "Summary of feedback assigned to a given `Media` asset.",
        "properties": {
          "average": {
            "type": "integer",
            "format": "int32",
            "example": 3
          },
          "user": {
            "type": "integer",
            "format": "int32",
            "example": 3
          }
        }
      },
      "Slug": {
        "type": "string",
        "readOnly": true,
        "description": "An URL-friendly representation of the entity’s `name`",
        "example": "my-asset-xy"
      },
      "ShortId": {
        "type": "string",
        "readOnly": true,
        "description": "Short alternative to the entity's `id` which can be used instead of path parameters `mediaId` or `channelId`.",
        "example": "7f734e6"
      },
      "ChannelMinimal": {
        "type": "object",
        "description": "minimal representation of a channel",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true,
            "description": "id of the object",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "name": {
            "type": "string",
            "example": "MyCatVideos"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "public",
              "shared"
            ]
          },
          "downloadEnabled": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether any authorized channel members, regardless of channel role, can [download](#tag/Downloads/operation/createDownload) media assets from this channel.\n"
          },
          "publicPortalDownloadEnabled": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether anonymous users can [download](#tag/Downloads/operation/createDownload) media assets from this channel. \nThis setting applies only to channels which are accessible to anonymous users (e.g., shared or public visibility).\n"
          },
          "slug": {
            "$ref": "#/components/schemas/Slug"
          },
          "shortId": {
            "$ref": "#/components/schemas/ShortId"
          }
        }
      },
      "ChannelVisibility": {
        "type": "string",
        "enum": [
          "private",
          "public",
          "shared"
        ]
      },
      "ShareLink": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "example": "https://cdn.streamdiver.com/vod-tenant/_definst_/amlst:2021/03/d2f3f6a0-a186-4156-b784-248de16e9e2a/playlist.m3u8\n  url:"
          }
        }
      },
      "IngestInformation": {
        "type": "object",
        "description": "Delivers information about the ingest job.",
        "properties": {
          "ingestJobStatus": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "initial",
              "queued",
              "inProgress",
              "finished",
              "interrupted",
              "error"
            ]
          },
          "progress": {
            "type": "number",
            "readOnly": true,
            "description": "Progress of the `ingestJob` in percent.",
            "example": 100
          },
          "errorMessage": {
            "type": "string",
            "readOnly": true,
            "description": "Message about what went wrong in the ingest service",
            "example": "Invalid source file, unaccepted video codec .FLV"
          }
        }
      },
      "LivestreamStatus": {
        "type": "string",
        "enum": [
          "created",
          "started",
          "live",
          "finished",
          "converting",
          "failed"
        ]
      },
      "LivestreamSource": {
        "type": "string",
        "description": "The type of live video input source. Currently only `RTMP` is supported.",
        "default": "rtmp",
        "enum": [
          "rtmp"
        ]
      },
      "LivestreamTarget": {
        "type": "object",
        "properties": {
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LivestreamSource"
              }
            ],
            "readOnly": true,
            "description": "The source type of the livestream (RTMP)."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "readOnly": true,
            "example": "rtmp://cdn.streamdiver.com/live-tenantname/96cntmao-spgc7dql",
            "description": "The URL to ingest the livestream."
          },
          "primary": {
            "type": "boolean",
            "readOnly": true,
            "description": "A flag indicating if this is the primary livestream ingest target."
          },
          "active": {
            "type": "boolean",
            "readOnly": true,
            "description": "A flag indicating if the livestream ingest is currently active and broadcasting."
          }
        },
        "required": [
          "source",
          "url",
          "primary",
          "active"
        ]
      },
      "LiveIngestInformation": {
        "type": "object",
        "description": "Delivers information about the `Livestream`",
        "properties": {
          "livestreamId": {
            "type": "string",
            "format": "uuid",
            "readOnly": true,
            "description": "The identifier of the associated `Livestream`.",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "status": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LivestreamStatus"
              }
            ]
          },
          "errorMessage": {
            "type": "string",
            "readOnly": true,
            "description": "It contains `Livestream` error details.",
            "example": "Live ingest missing"
          },
          "inputs": {
            "description": "The ingest endpoint URLs available. The last part of the URL path is the stream key.",
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LivestreamTarget"
            }
          }
        },
        "required": [
          "livestreamId",
          "status"
        ]
      },
      "MediaOrigin": {
        "readOnly": true,
        "type": "string",
        "enum": [
          "fileupload",
          "liveingest"
        ]
      },
      "Permission": {
        "type": "string",
        "enum": [
          "viewChannel",
          "viewMetadata",
          "downloadFromChannel",
          "createContent",
          "createMetadata",
          "manageSharingOptions",
          "manageMemberAssignements",
          "viewAnalytics",
          "manageTenant",
          "manageUsers",
          "createChannel",
          "viewStatistics",
          "manageSystem",
          "manageTenantContent",
          "makeChannelPublic",
          "manageChannel",
          "deleteChannel",
          "manageLiveStreams",
          "assumeCreateContent"
        ],
        "example": "createContent"
      },
      "Media": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/BaseMedia"
          },
          {
            "type": "object",
            "properties": {
              "file": {
                "readOnly": true,
                "$ref": "#/components/schemas/File"
              },
              "usage": {
                "readOnly": true,
                "$ref": "#/components/schemas/UsageSummary"
              },
              "feedback": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FeedbackSummary"
                  }
                ]
              },
              "featuredAtUtc": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "Moment when the `Media` asset was featured.",
                "example": "2020-04-12T23:20:50.52Z",
                "nullable": true
              },
              "channels": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimal"
                }
              },
              "visibility": {
                "readOnly": true,
                "$ref": "#/components/schemas/ChannelVisibility"
              },
              "shareLink": {
                "readOnly": true,
                "$ref": "#/components/schemas/ShareLink"
              },
              "ingestInformation": {
                "readOnly": true,
                "$ref": "#/components/schemas/IngestInformation"
              },
              "liveIngestInformation": {
                "readOnly": true,
                "$ref": "#/components/schemas/LiveIngestInformation"
              },
              "origin": {
                "readOnly": true,
                "$ref": "#/components/schemas/MediaOrigin"
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "description": "List of permission the user has in **at least one** `Channel` the `Media` asset is referenced in.",
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "permissionsInAllChannels": {
                "type": "array",
                "readOnly": true,
                "deprecated": true,
                "description": "Originally a list of permission the user has in **all** `Channels` the `Media` asset is referenced in. After deprecation set to same value as `permissions`",
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "slug": {
                "$ref": "#/components/schemas/Slug"
              },
              "shortId": {
                "$ref": "#/components/schemas/ShortId"
              }
            }
          }
        ]
      },
      "MediaCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Media"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "Error": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "properties": {
              "message": {
                "type": "string"
              }
            },
            "required": [
              "message"
            ],
            "example": {
              "status": "error",
              "message": "Related error message"
            }
          }
        ]
      },
      "MediaAssetIds": {
        "type": "object",
        "properties": {
          "mediaAssetIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "Id of the MediaAsset",
              "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
            }
          }
        }
      },
      "DeletedObjectResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          }
        ]
      },
      "Tag": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "description": "`Tag` object\n",
            "properties": {
              "name": {
                "type": "string",
                "description": "Tag name",
                "example": "ceruleanblue",
                "maxLength": 255
              },
              "popularity": {
                "type": "integer",
                "description": "Tag popularity",
                "example": 123,
                "readOnly": true,
                "nullable": true
              }
            }
          }
        ]
      },
      "MediaTagItem": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Tag"
          },
          {
            "type": "object",
            "properties": {
              "common": {
                "type": "boolean",
                "description": "Indicates if the given `Tag` is referenced in all passed `Media` assets\n",
                "example": true
              }
            }
          }
        ]
      },
      "MediaTagItemCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaTagItem"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "RessourceId": {
        "type": "string",
        "format": "uuid",
        "description": "The resource identifier.",
        "example": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
      },
      "BulkAssignTags": {
        "type": "object",
        "properties": {
          "mediaAssetIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RessourceId"
            }
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "MuellerLuedenscheidt",
              "Kloebner",
              "Duck"
            ]
          }
        }
      },
      "OkObjectResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          }
        ]
      },
      "DefaultId": {
        "type": "string",
        "format": "uuid",
        "readOnly": true,
        "description": "The object identifier.",
        "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
      },
      "Rendition": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DefaultId"
              }
            ]
          },
          "mimeType": {
            "type": "string",
            "readOnly": true,
            "example": "application/x-mpegURL",
            "description": "The MIME type of the `Rendition` (e.g., `video/mp4` or `image/jpeg`)."
          },
          "source": {
            "type": "string",
            "format": "uri",
            "example": "https://cdn.streamdiver.com/vod-tenant/_definst_/amlst:2021/03/d2f3f6a0-a186-4156-b784-248de16e9e2a/playlist.m3u8",
            "description": "The URL of the `Rendition`. \n* For streamable audio/video content, this is the HLS playlist URL. \n* For image/document assets, this is the authenticated URL to retrieve the binary file.\n"
          },
          "height": {
            "type": "integer",
            "format": "int32",
            "example": 1080,
            "description": "The height of the `Rendition` in pixels."
          },
          "width": {
            "type": "integer",
            "format": "int32",
            "example": 1980,
            "description": "The width of the `Rendition` in pixels."
          },
          "status": {
            "type": "string",
            "enum": [
              "ready",
              "processing"
            ],
            "description": "The processing status of the `Rendition`."
          },
          "type": {
            "type": "string",
            "enum": [
              "original",
              "derived",
              "videostream",
              "livestream"
            ],
            "example": "videostream",
            "description": "Indicates the type of rendition provided for the parent `Media` asset:\n * `original` - The `Media` asset's source file.\n * `derived` - A file automatically derived from the source file, e.g. scaled down and/or converted to a different format.\n * `videostream` - An HLS playlist for streamable audio/video content.\n"
          },
          "deprecated": {
            "description": "Indicates a deprecated `Rendition` that is maintained solely for backward compatibility. Please use other available `Renditions`.",
            "type": "boolean",
            "readOnly": true
          },
          "filesize": {
            "type": "integer",
            "format": "int64",
            "readOnly": true,
            "example": 123456789,
            "description": "The size of a file-based `Rendition` in bytes. This is not applicable for `Renditions` typed `videostream`."
          },
          "representation": {
            "type": "integer",
            "format": "int32",
            "default": 0,
            "example": 1,
            "description": "Groups renditions that belong to the same source. By convention:\n  - `0` = Primary livestream rendition\n  - `1` = Backup stream rendition\n"
          }
        },
        "required": [
          "mimeType"
        ]
      },
      "Subtitle": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "example": "{{ base_url }}/media/91194f15-6dd1-4a18-aa28-81f70d526045/subtitles/en"
          },
          "languageCode": {
            "type": "string",
            "example": "en"
          },
          "displayName": {
            "type": "string",
            "example": "English",
            "description": "localized displayname of the subtitle"
          }
        }
      },
      "Role": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 32,
            "example": "Admin"
          },
          "description": {
            "type": "string",
            "maxLength": 255,
            "example": "Role for managing and uploading content"
          },
          "permissions": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Permission"
            }
          }
        },
        "required": [
          "name"
        ]
      },
      "UserGroupType": {
        "type": "string",
        "description": "Specifies whether the user group is predefined by the system or created by a tenant administrator.",
        "readOnly": true,
        "enum": [
          "system",
          "tenant"
        ],
        "default": "tenant",
        "x-enum-descriptions": [
          "Predefined group managed by the system",
          "Custom group created by a tenant administrator"
        ]
      },
      "UserGroupMinimal": {
        "type": "object",
        "description": "group",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/RessourceId"
          },
          "name": {
            "type": "string",
            "description": "Name of the `UserGroup`",
            "example": "Sales"
          },
          "type": {
            "$ref": "#/components/schemas/UserGroupType"
          },
          "userCount": {
            "type": "integer",
            "readOnly": true,
            "description": "Number of users in the group",
            "example": 10
          }
        },
        "required": [
          "id",
          "name",
          "type"
        ]
      },
      "RoleDetailed": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Role"
          },
          {
            "type": "object",
            "properties": {
              "group": {
                "description": "set if the Role is coming from a `UserGroup`, exposing information about `name` and `id` of the `UserGroup`",
                "nullable": true,
                "$ref": "#/components/schemas/UserGroupMinimal"
              }
            }
          }
        ]
      },
      "ChannelMinimalPermissions": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelMinimal"
          },
          {
            "type": "object",
            "properties": {
              "roles": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/RoleDetailed"
                }
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            }
          }
        ]
      },
      "MediaDetailed": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Media"
          },
          {
            "type": "object",
            "properties": {
              "hasMetadata": {
                "type": "boolean",
                "readOnly": true,
                "example": true
              },
              "renditions": {
                "readOnly": true,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Rendition"
                }
              },
              "subtitles": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Subtitle"
                }
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "isPartOfDownload": {
                "readOnly": true,
                "type": "boolean",
                "description": "Indicates if the media is part of any download."
              },
              "player": {
                "readOnly": true,
                "type": "string",
                "description": "Player widget for embedding",
                "example": "<sd-player-widget tenant-name=\"streamdiver\" asset-id=\"ee96622c-3454-4db3-92b3-8acf33d268e2\"></sd-player-widget><script type=\"module\" crossorigin src=\"/sdplayerwidget.min.js\"></script><link rel=\"stylesheet\" href=\"/sdplayerwidget.min.css\">"
              },
              "channels": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimalPermissions"
                }
              },
              "attachmentsCount": {
                "type": "integer",
                "description": "Count of linked `File Attachments`."
              }
            }
          }
        ]
      },
      "MediaDetailedResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MediaDetailed"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "ThumbnailResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Thumbnail"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "ShareLinkResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ShareLink"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "Comment": {
        "description": "A comment for a media asset",
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "fromModerator": {
                "type": "boolean",
                "example": false,
                "readOnly": true
              },
              "text": {
                "type": "string",
                "example": "Romanes eunt domus!",
                "maxLength": 512
              },
              "nickname": {
                "type": "string",
                "example": "max4711",
                "maxLength": 255
              },
              "fromHost": {
                "type": "string",
                "format": "ipv4",
                "readOnly": true
              }
            }
          }
        ]
      },
      "CommentCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Comment"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CommentResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Comment"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "PermissionCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MediaChapterEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaEventBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MediaChapter"
              }
            }
          }
        ]
      },
      "MediaEventBase": {
        "type": "object",
        "discriminator": {
          "propertyName": "event",
          "mapping": {
            "mediachapter.created": "#/components/schemas/MediaChapterEvent",
            "mediachapter.updated": "#/components/schemas/MediaChapterEvent",
            "mediachapter.deleted": "#/components/schemas/MediaChapterEvent",
            "media.livestream.updated": "#/components/schemas/MediaLivestreamUpdatedEvent",
            "media.renditions.updated": "#/components/schemas/MediaRenditionsUpdatedEvent"
          }
        },
        "properties": {
          "event": {
            "$ref": "#/components/schemas/MediaEventType"
          }
        },
        "required": [
          "event",
          "data"
        ],
        "description": "Media asset event"
      },
      "MediaLivestreamUpdatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaEventBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/LiveIngestInformation"
              }
            }
          }
        ]
      },
      "UpdatedMediaRenditions": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "The affected `Media` asset's identifier.",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "renditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Rendition"
            }
          }
        }
      },
      "MediaRenditionsUpdatedEvent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaEventBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/UpdatedMediaRenditions"
              }
            }
          }
        ]
      },
      "MediaEventType": {
        "type": "string",
        "description": "The media event type.",
        "enum": [
          "media.created",
          "media.updated",
          "media.deleted",
          "mediachapter.created",
          "mediachapter.updated",
          "mediachapter.deleted",
          "media.livestream.updated",
          "media.renditions.updated"
        ]
      },
      "MediaChapterType": {
        "readOnly": true,
        "type": "string",
        "example": "manual",
        "enum": [
          "usergenerated",
          "autogenerated"
        ]
      },
      "JobStatus": {
        "type": "string",
        "enum": [
          "scheduled",
          "running",
          "completed",
          "failed",
          "retry",
          "skipped"
        ]
      },
      "MediaSectionType": {
        "type": "string",
        "default": "timerange",
        "description": "The type of `Section` for a `Media` asset, e.g. a single point in time or a time range within a video.",
        "enum": [
          "time",
          "timerange",
          "part"
        ]
      },
      "DefaultObjectSimple": {
        "type": "object",
        "description": "The default object structure",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "readOnly": true,
            "description": "The object identifier.",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          }
        }
      },
      "MediaMinimal": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObjectSimple"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "readOnly": true,
                "type": "string",
                "example": "Aufzeichnung Vortrag Dr. Klöbner",
                "maxLength": 255
              },
              "thumbnailUrl": {
                "readOnly": true,
                "description": "url to the actual thumbnail",
                "type": "string"
              },
              "featuredAtUtc": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "datetime when the Media asset was featured in the channel",
                "example": "2020-09-16T23:20:50.52Z"
              },
              "type": {
                "$ref": "#/components/schemas/MediaType"
              }
            }
          }
        ]
      },
      "MediaSectionMinimal": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/DefaultId"
          },
          "title": {
            "type": "string",
            "readOnly": true,
            "example": "Chapter 1 - Lorem ipsum dolor sit",
            "maxLength": 2500
          },
          "type": {
            "$ref": "#/components/schemas/MediaSectionType"
          },
          "thumbnail": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Thumbnail"
              }
            ]
          },
          "mimeType": {
            "type": "string",
            "readOnly": true,
            "example": "application/x-mpegURL"
          },
          "source": {
            "type": "string",
            "readOnly": true,
            "example": "https://cdn.streamdiver.com/vod-tenant/_definst_/amlst:2021/03/d2f3f6a0-a186-4156-b784-248de16e9e2a/playlist.m3u8"
          },
          "start": {
            "type": "number",
            "format": "double",
            "example": 5000.223,
            "description": "start of section in milliseconds"
          },
          "end": {
            "type": "number",
            "format": "double",
            "example": 20000.012213,
            "description": "end of section in milliseconds",
            "nullable": true
          },
          "chapterId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "readOnly": false,
            "description": "optional id of a media chapter",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "mediaAsset": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/MediaMinimal"
              }
            ]
          }
        },
        "required": [
          "title",
          "type",
          "start"
        ]
      },
      "EntryStatus": {
        "type": "string",
        "enum": [
          "enabled",
          "hidden"
        ],
        "default": "enabled",
        "x-default-value": "Enabled",
        "x-has-default": true
      },
      "Entry": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "The display title of the entry",
                "example": "Wie schalte ich mein Notebook ein?",
                "maxLength": 2500
              },
              "description": {
                "type": "string",
                "description": "Detailed description or content of the entry",
                "example": "In diesem Abschnitt wird Ihnen erklärt wie Sie ihr notebook einschalten"
              },
              "sortNumber": {
                "type": "integer",
                "description": "Position for sorting entries within the same parent scope.\nWhen an entry is created or updated with a specific sortNumber, \nexisting entries with the same or higher sortNumber in that scope \nare automatically shifted forward (incremented) to resolve conflicts.\n",
                "example": 1
              },
              "mediaChapterId": {
                "type": "string",
                "format": "uuid",
                "readOnly": true,
                "description": "ID of the Media Chapter to which this entry belongs",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "section": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MediaSectionMinimal"
                  }
                ]
              },
              "documentId": {
                "type": "string",
                "format": "uuid",
                "readOnly": false,
                "description": "ID of a MediaAsset of type document to enable file attachments",
                "example": "9c6ad2e4-a811-42e6-a864-2750655eb169"
              },
              "parentId": {
                "type": "string",
                "format": "uuid",
                "nullable": true,
                "readOnly": false,
                "description": "ID of the parent entry for hierarchical entry structures.\nNull for root-level entries within the chapter.\n",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
              },
              "status": {
                "description": "The current status of the entry",
                "$ref": "#/components/schemas/EntryStatus",
                "readOnly": false
              },
              "childs": {
                "type": "array",
                "readOnly": true,
                "description": "Array of child entries in hierarchical entry structures",
                "items": {
                  "$ref": "#/components/schemas/Entry"
                }
              }
            },
            "required": [
              "title"
            ]
          }
        ]
      },
      "MediaSection": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaSectionMinimal"
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "approved",
                  "suggested",
                  "rejected"
                ]
              },
              "origin": {
                "type": "string",
                "enum": [
                  "autogenerated",
                  "manual",
                  "scene"
                ]
              }
            }
          }
        ]
      },
      "MediaChapter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Video Unterteilung 1",
                "maxLength": 255,
                "description": "The name of the `Media Chapter`."
              },
              "description": {
                "type": "string",
                "description": "A brief description of the chapter's purpose or content."
              },
              "type": {
                "$ref": "#/components/schemas/MediaChapterType"
              },
              "status": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/JobStatus"
                  }
                ],
                "example": "running",
                "description": "The current processing status of the chapter."
              },
              "default": {
                "description": "Indicates if this is the default chapter for the parent `Media` asset.",
                "type": "boolean",
                "nullable": true
              },
              "entries": {
                "description": "A nested list of `Entries` contained in this chapter.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Entry"
                }
              },
              "sections": {
                "description": "A collection of `Media Sections` that organize the media content within this chapter.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaSection"
                }
              },
              "channels": {
                "description": "A list of associated `Channels` for this `Media Chapter`.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimal"
                }
              },
              "liveEntryId": {
                "description": "ID of the `Entry` which should be marked as currently live.",
                "type": "string",
                "format": "uuid",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22",
                "nullable": true
              }
            }
          }
        ]
      },
      "MediaChapterEventDeleted": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaEventBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/DefaultObjectSimple"
              }
            }
          }
        ]
      },
      "MediaUpdated": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaEventBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/BaseMedia"
              }
            }
          }
        ]
      },
      "MediaEventsResponse": {
        "type": "object",
        "discriminator": {
          "propertyName": "event",
          "mapping": {
            "mediachapter.created": "#/components/schemas/MediaChapterEvent",
            "mediachapter.updated": "#/components/schemas/MediaChapterEvent",
            "mediachapter.deleted": "#/components/schemas/MediaChapterEventDeleted",
            "media.livestream.updated": "#/components/schemas/MediaLivestreamUpdatedEvent",
            "media.renditions.updated": "#/components/schemas/MediaRenditionsUpdatedEvent",
            "media.updated": "#/components/schemas/MediaUpdated"
          }
        },
        "properties": {
          "event": {
            "$ref": "#/components/schemas/MediaEventType"
          }
        },
        "required": [
          "event",
          "data"
        ]
      },
      "MediaSectionCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaSection"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MediaSectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MediaSection"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "UpdateMediaSection": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "example": "Chapter 1 - Lorem ipsum dolor sit",
            "maxLength": 2500
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "suggested",
              "rejected"
            ]
          },
          "start": {
            "type": "number",
            "format": "double",
            "example": 5000.223,
            "description": "The start of section in milliseconds"
          },
          "end": {
            "type": "number",
            "format": "double",
            "example": 20000.012213,
            "description": "The end of section in milliseconds",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/MediaSectionType"
          }
        }
      },
      "SplitMediaSection": {
        "type": "object",
        "properties": {
          "splitAt": {
            "type": "number",
            "format": "double",
            "example": 5000.223,
            "description": "The time of section split in milliseconds"
          }
        }
      },
      "MediaSectionSplit": {
        "type": "object",
        "properties": {
          "updated": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/MediaSection"
              }
            ]
          },
          "created": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/MediaSection"
              }
            ]
          }
        }
      },
      "MediaSectionSplitResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MediaSectionSplit"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MediaChapterCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MediaChapter"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateMediaChapter": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "MediaChapter 1",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "example": "MediaChapter 1 structures this MediaAsset into parts which belong together"
          },
          "channelIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DefaultId"
            }
          }
        }
      },
      "MediaChapterResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MediaChapter"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "ImportMediaChapter": {
        "type": "object",
        "properties": {
          "meetingId": {
            "type": "string",
            "format": "uri",
            "description": "Resource identifier of the Meeting to be imported"
          },
          "mediaChapterName": {
            "type": "string",
            "description": "The name of the imported media chapter"
          }
        },
        "required": [
          "meetingId",
          "mediaChapterName"
        ]
      },
      "UpdateMediaChapter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Struktur 1",
                "maxLength": 255,
                "description": "The name of the `Media Chapter`."
              },
              "description": {
                "type": "string",
                "description": "A brief description of the chapter's purpose or content.",
                "example": "Struktur 1 gliedert das Asset in Teile"
              },
              "channelIds": {
                "description": "An array of `Channel` IDs associated with the chapter.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DefaultId",
                  "readOnly": false
                }
              },
              "default": {
                "description": "Indicates if this is the default chapter for the parent `Media` asset.",
                "type": "boolean",
                "nullable": true
              },
              "liveEntryId": {
                "description": "ID of the `Entry` which should be marked as currently live.",
                "type": "string",
                "format": "uuid",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22",
                "nullable": true
              }
            }
          }
        ]
      },
      "CreateEntry": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "The display title of the entry",
            "example": "Wie schalte ich mein Notebook ein?",
            "maxLength": 2500
          },
          "description": {
            "type": "string",
            "description": "Detailed description or content of the entry",
            "example": "In diesem Abschnitt wird Ihnen erklärt wie Sie ihr notebook einschalten"
          },
          "sortNumber": {
            "type": "integer",
            "description": "Position for sorting entries within the same parent scope.\nWhen set to a value that conflicts with existing entries, the system automatically adjusts\nthe sort numbers of other entries in the same parent to resolve conflicts.\nIf set to 0 for root entries (no parentId), the system assigns the next available number.\n**Note**: Modifying this value may cause other entries to be automatically reordered.\n",
            "example": 1
          },
          "parentId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the parent entry for creating hierarchical entry structures.\nIf null, the entry is created as a root-level entry within the chapter.\n",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "status": {
            "type": "string",
            "description": "The initial status of the entry. If not specified, defaults to 'Hidden' for live streams\nand 'Enabled' for other media types.\n",
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/EntryStatus"
              }
            ]
          }
        },
        "required": [
          "title"
        ]
      },
      "EntryResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Entry"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "BulkUpdateEntries": {
        "type": "object",
        "properties": {
          "entryIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RessourceId"
            }
          },
          "status": {
            "$ref": "#/components/schemas/EntryStatus"
          }
        }
      },
      "MetadataRecordOverviewStatus": {
        "type": "string",
        "enum": [
          "running",
          "finished",
          "error"
        ]
      },
      "Link": {
        "type": "object",
        "properties": {
          "href": {
            "description": "The link URL.",
            "type": "string",
            "format": "uri",
            "example": "https://api.streamdiver.com/v2/media/metadata?expand={objectname}",
            "readOnly": true
          }
        },
        "required": [
          "href"
        ]
      },
      "MetadataRecordStatus": {
        "type": "string",
        "enum": [
          "queued",
          "running",
          "error",
          "finished"
        ]
      },
      "MetadataRecordCommon": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Link"
          },
          {
            "type": "object",
            "properties": {
              "progress": {
                "type": "integer",
                "minimum": 0,
                "maximum": 100,
                "readOnly": true,
                "example": 50
              },
              "status": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MetadataRecordStatus"
                  }
                ],
                "example": "running"
              },
              "errorCode": {
                "readOnly": true,
                "description": "describes the error code in case of an error",
                "type": "string",
                "enum": [
                  "none",
                  "internalError",
                  "serviceUnavailableOrTimeout",
                  "conversionError"
                ]
              },
              "isErrorProbablyTransient": {
                "readOnly": true,
                "description": "indicates if in case of an error reextraction might be successful, because the error is temporary",
                "type": "boolean"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "moment where the object was last updated",
                "example": "2020-09-16T23:20:50.52Z"
              },
              "retryScheduledAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "readOnly": true,
                "description": "The datetime when the next retry attempt is scheduled to occur. This field is null if no retry is currently scheduled.",
                "example": "2020-09-16T23:20:50.52Z"
              }
            },
            "required": [
              "status"
            ]
          }
        ]
      },
      "MetadataInstance": {
        "type": "object",
        "description": "default metadata record",
        "properties": {
          "confidence": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "example": 1
          },
          "start": {
            "type": "number",
            "format": "double",
            "example": 13.51
          },
          "duration": {
            "type": "number",
            "format": "double",
            "example": 80.39
          }
        }
      },
      "MetadataRecordWithInstances": {
        "type": "object",
        "description": "Metadata record with instances (ocr, entities, etc.)",
        "properties": {
          "name": {
            "type": "string",
            "example": "Max Mustermann"
          },
          "instances": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/MetadataInstance"
            }
          }
        }
      },
      "MetadataRecordNestedWithInstances": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordWithInstances"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordEntity": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordWithInstances"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "Currently following values are possible: organization, person, location, miscellaneous",
                "example": "person"
              }
            }
          }
        ]
      },
      "MetadataRecordNestedEntities": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordEntity"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordKeywordInstance": {
        "type": "object",
        "properties": {
          "start": {
            "type": "number"
          },
          "duration": {
            "type": "number"
          }
        }
      },
      "MetadataRecordKeyword": {
        "type": "object",
        "description": "Metadata record for keyword",
        "properties": {
          "name": {
            "type": "string"
          },
          "instances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataRecordKeywordInstance"
            }
          }
        }
      },
      "MetadataRecordNestedKeywords": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordKeyword"
                }
              }
            }
          }
        ]
      },
      "MetadataObjectInstance": {
        "type": "object",
        "description": "object metadata record",
        "properties": {
          "confidence": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "example": 1
          },
          "start": {
            "type": "number",
            "format": "double",
            "description": "Start time when object appears, in case of a video. For images null.",
            "example": 13.51,
            "nullable": true
          },
          "duration": {
            "type": "number",
            "format": "double",
            "description": "Duration while is object appearing, in case of a video. For images null.",
            "example": 80.39,
            "nullable": true
          },
          "box": {
            "type": "object",
            "description": "bounding box surrounding the object",
            "properties": {
              "x1": {
                "type": "number",
                "format": "double"
              },
              "y1": {
                "type": "number",
                "format": "double"
              },
              "x2": {
                "type": "number",
                "format": "double"
              },
              "y2": {
                "type": "number",
                "format": "double"
              }
            }
          }
        }
      },
      "MetadataRecordObject": {
        "type": "object",
        "description": "Metadata record for object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Max Mustermann"
          },
          "instances": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/MetadataObjectInstance"
            }
          }
        }
      },
      "MetadataRecordNestedObjects": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordObject"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordImageText": {
        "type": "object",
        "description": "Metadata record for image text",
        "properties": {
          "text": {
            "type": "string",
            "example": "Example"
          },
          "confidence": {
            "type": "number",
            "format": "double",
            "example": 0.9
          },
          "box": {
            "type": "object",
            "description": "bounding box surrounding the image text",
            "properties": {
              "x1": {
                "type": "number",
                "format": "double"
              },
              "y1": {
                "type": "number",
                "format": "double"
              },
              "x2": {
                "type": "number",
                "format": "double"
              },
              "y2": {
                "type": "number",
                "format": "double"
              }
            }
          }
        }
      },
      "MetadataRecordNestedImageText": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordImageText"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordVideoText": {
        "type": "object",
        "description": "Metadata record for video text",
        "properties": {
          "start": {
            "type": "number",
            "format": "double",
            "example": 2
          },
          "duration": {
            "type": "number",
            "format": "double",
            "example": 2
          },
          "frameIndex": {
            "type": "number",
            "example": 0
          },
          "lines": {
            "type": "string",
            "example": "word1word2"
          },
          "title": {
            "type": "string",
            "example": "word1"
          },
          "texts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataRecordImageText"
            }
          }
        }
      },
      "MetadataRecordNestedVideoText": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordVideoText"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordRanges": {
        "type": "object",
        "description": "Metadata record simple range (scenes, etc.)",
        "properties": {
          "start": {
            "type": "number",
            "format": "double",
            "example": 10.56
          },
          "duration": {
            "type": "number",
            "format": "double",
            "example": 135.45
          }
        }
      },
      "MetadataRecordNestedRanges": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordRanges"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordSpeaker": {
        "type": "object",
        "description": "Metadata record for speaker",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/DefaultId"
          },
          "name": {
            "type": "string",
            "example": "Max Mustermann"
          },
          "instances": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/MetadataInstance"
            }
          }
        }
      },
      "MetadataRecordNestedSpeakers": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordSpeaker"
                }
              }
            }
          }
        ]
      },
      "MetadataRecordNestedTranscripts": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RessourceId"
                  }
                ],
                "readOnly": true
              },
              "usedPreset": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RessourceId"
                  }
                ],
                "readOnly": true
              },
              "isActive": {
                "type": "boolean",
                "description": "indicates which transcript should be used for extracting other metadata and for indexing. Can only be true for transcripts. Only a single transcript can be active for a media."
              },
              "isPartOfDownload": {
                "readOnly": true,
                "type": "boolean",
                "description": "Indicates if the media is part of any download"
              },
              "languageCode": {
                "type": "string",
                "description": "language of the transcription",
                "example": "dektn"
              }
            },
            "example": {
              "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
              "usedPreset": "d4dd87de-eb5c-40b3-b1fe-0b339a452512",
              "isActive": true,
              "progress": 50,
              "status": "running",
              "updatedAt": "2020-09-16T23:20:50.52Z",
              "href": "https://api.streamdiver.com/v2/media/{assetId}/transcripts/{transcriptId}"
            },
            "required": [
              "id",
              "usedPreset"
            ]
          }
        ]
      },
      "MetadataRecordDocumentContentAnnotation": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "href": {
            "type": "string"
          }
        }
      },
      "MetadataRecordDocumentContentPage": {
        "type": "object",
        "properties": {
          "pageNumber": {
            "type": "integer",
            "nullable": true,
            "description": "Not available for Microsoft Word and Rich Text Format documents"
          },
          "paragraphs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "annotations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataRecordDocumentContentAnnotation"
            }
          }
        }
      },
      "MetadataRecordDocumentContent": {
        "type": "object",
        "properties": {
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataRecordDocumentContentPage"
            }
          }
        }
      },
      "MetadataRecordNestedDocumentContent": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "value": {
                "$ref": "#/components/schemas/MetadataRecordDocumentContent"
              }
            }
          }
        ]
      },
      "MediaChapterStatus": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "status": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/JobStatus"
                  }
                ],
                "example": "running",
                "description": "The current processing status of the chapter."
              }
            }
          }
        ],
        "required": [
          "status"
        ]
      },
      "ExifResolutionUnit": {
        "type": "string",
        "enum": [
          "None",
          "Inches",
          "Cm"
        ],
        "description": "The unit of measurement for the horizontal and vertical resolution values (e.g., `resolutionX`, `resolutionY`) in the image's Exif data.",
        "example": "Inches"
      },
      "ExifOrientation": {
        "type": "string",
        "enum": [
          "Horizontal",
          "MirrorHorizontal",
          "Rotate180",
          "MirrorVertical",
          "MirrorHorizontalRotate270CW",
          "Rotate90CW",
          "MirrorHorizontalRotate90CW",
          "Rotate270CW"
        ],
        "description": "The Exif orientation of the image, indicating how it was captured or should be displayed.  This describes transformations applied to the image data, such as rotations and mirroring."
      },
      "ExifCompression": {
        "type": "string",
        "enum": [
          "Uncompressed",
          "CCITT1D",
          "T4Group3Fax",
          "T6Group4Fax",
          "LZW",
          "JPEGOldStyle",
          "JPEG",
          "AdobeDeflate",
          "JBIGBW",
          "JBIGColor",
          "JPEG99",
          "Kodak262",
          "Next",
          "SonyARWCompressed",
          "PackedRAW",
          "SamsungSRWCompressed",
          "CCIRLEW",
          "SamsungSRWCompressed2",
          "PackBits",
          "Thunderscan",
          "KodakKDCCompressed",
          "IT8CTPAD",
          "IT8LW",
          "IT8MP",
          "IT8BL",
          "PixarFilm",
          "PixarLog",
          "Deflate",
          "DCS",
          "AperioJPEG2000YCbCr",
          "AperioJPEG2000RGB",
          "JBIG",
          "SGILog",
          "SGILog24",
          "JPEG2000",
          "NikonNEFCompressed",
          "JBIG2TIFFFX",
          "MDIBinaryLevelCodec",
          "MDIProgressiveTransformCodec",
          "MDIVector",
          "ESRI_Lerc",
          "LossyJPEG",
          "LZMA2",
          "Zstd",
          "WebP",
          "PNG",
          "JPEGXR",
          "JPEGXL",
          "KodakDCRCompressed",
          "PentaxPEFCompressed"
        ],
        "description": "The compression scheme used for the image data, as recorded in the Exif metadata."
      },
      "ExifColorSpace": {
        "type": "string",
        "enum": [
          "sRGB",
          "AdobeRGB",
          "WideGamutRGB",
          "ICCProfile",
          "Uncalibrated"
        ],
        "description": "The color space used to encode the image data, as specified in the Exif metadata. This defines the range of colors that can be represented in the image."
      },
      "CameraExposureMode": {
        "type": "string",
        "enum": [
          "Auto",
          "Manual",
          "AutoBracket"
        ],
        "description": "The exposure mode used by the camera when capturing the image, indicating how the exposure settings (shutter speed, aperture, ISO) were determined."
      },
      "MetadataRecordFileSummary": {
        "type": "object",
        "description": "The most commonly used image metadata present in the given `Media` asset, summarized from multiple sources (e.g., EXIF, IPTC, etc.).",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true,
            "description": "The title of the image.",
            "example": "Wörthersee in the evening"
          },
          "caption": {
            "type": "string",
            "nullable": true,
            "description": "A caption describing the image content.",
            "example": "A beautiful sunset captured at the Wörthersee."
          },
          "keywords": {
            "type": "string",
            "nullable": true,
            "description": "Comma-separated keywords associated with the image, useful for search and categorization.",
            "example": "sunset, lake, landscape"
          },
          "credit": {
            "type": "string",
            "nullable": true,
            "description": "The name or entity to whom credit for the image is attributed.",
            "example": "Max Mustermann"
          },
          "copyright": {
            "type": "string",
            "nullable": true,
            "description": "Copyright information for the image.",
            "example": "© 2025 Max Mustermann"
          },
          "imageWidth": {
            "type": "integer",
            "description": "The width of the image in pixels.",
            "example": 4000
          },
          "imageHeight": {
            "type": "integer",
            "description": "The height of the image in pixels.",
            "example": 3000
          },
          "resolutionX": {
            "type": "integer",
            "description": "The horizontal resolution of the image, measured in the units specified by `resolutionUnit`.",
            "example": 72
          },
          "resolutionY": {
            "type": "integer",
            "description": "The vertical resolution of the image, measured in the units specified by `resolutionUnit`.",
            "example": 72
          },
          "resolutionUnit": {
            "$ref": "#/components/schemas/ExifResolutionUnit",
            "nullable": true,
            "description": "The unit of measurement for the image resolution (e.g., inches, centimeters).",
            "example": "Inches"
          },
          "orientation": {
            "$ref": "#/components/schemas/ExifOrientation",
            "nullable": true,
            "description": "The orientation of the image as captured (e.g., rotated 0, 90, 180, or 270 degrees).",
            "example": 1
          },
          "compression": {
            "$ref": "#/components/schemas/ExifCompression",
            "nullable": true,
            "description": "The compression scheme used to encode the image data (e.g., JPEG, TIFF).",
            "example": 6
          },
          "colorDepth": {
            "type": "integer",
            "description": "The number of bits used to represent the color of each pixel in the image.",
            "example": 24
          },
          "colorSpace": {
            "$ref": "#/components/schemas/ExifColorSpace",
            "nullable": true,
            "description": "The color space in which the image is represented (e.g., sRGB, Adobe RGB).",
            "example": 1
          },
          "cameraModelMake": {
            "type": "string",
            "nullable": true,
            "description": "The manufacturer of the camera that captured the image.",
            "example": "Canon"
          },
          "cameraModelName": {
            "type": "string",
            "nullable": true,
            "description": "The specific model name of the camera.",
            "example": "EOS 5D Mark IV"
          },
          "cameraLensModel": {
            "type": "string",
            "nullable": true,
            "description": "The model name of the lens used to capture the image.",
            "example": "EF 50mm f/1.8 STM"
          },
          "exposureTime": {
            "type": "number",
            "format": "double",
            "description": "The duration the camera's shutter was open, measured in seconds.",
            "example": 0.0033333333333333335
          },
          "apertureValue": {
            "type": "number",
            "format": "double",
            "description": "The aperture value of the lens used to capture the image.",
            "example": 2.8
          },
          "focalLength": {
            "type": "number",
            "format": "double",
            "description": "The focal length of the lens used to capture the image, measured in millimeters.",
            "example": 50
          },
          "iso": {
            "type": "integer",
            "description": "The ISO speed rating of the camera at the time the image was captured, indicating its sensitivity to light.",
            "example": 100
          },
          "exposureMode": {
            "$ref": "#/components/schemas/CameraExposureMode",
            "nullable": true,
            "description": "The exposure mode used by the camera (e.g., Manual, Automatic, Program).",
            "example": 1
          },
          "latitude": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "The geographic latitude of the location where the image was captured.",
            "example": 46.613801
          },
          "longitude": {
            "type": "number",
            "format": "double",
            "nullable": true,
            "description": "The geographic longitude of the location where the image was captured.",
            "example": 14.251895
          },
          "dateTimeOriginalUtc": {
            "type": "string",
            "format": "date-time",
            "example": "2020-04-12T23:20:50.52Z",
            "description": "The date and time the `Media` was originally created, such as when a photo was taken.\n",
            "nullable": true
          }
        }
      },
      "MetadataRecordFile": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MetadataRecordCommon"
          },
          {
            "type": "object",
            "properties": {
              "values": {
                "type": "object",
                "properties": {
                  "summary": {
                    "$ref": "#/components/schemas/MetadataRecordFileSummary"
                  },
                  "exif": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "EXIF (Exchangeable image file format) metadata, providing details about image capture settings."
                  },
                  "iptc": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "IPTC (International Press Telecommunications Council) metadata, commonly used for news and editorial content."
                  },
                  "xmp": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "XMP (Extensible Metadata Platform) metadata, a standard for embedding metadata in various file formats."
                  },
                  "other": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string"
                    },
                    "description": "Other metadata found in the file that does not fall into the EXIF, IPTC, or XMP categories."
                  }
                }
              }
            }
          }
        ]
      },
      "MetadataCollection": {
        "type": "object",
        "properties": {
          "language": {
            "type": "string"
          },
          "status": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/MetadataRecordOverviewStatus"
              }
            ],
            "example": "running"
          },
          "actions": {
            "$ref": "#/components/schemas/MetadataRecordNestedWithInstances",
            "deprecated": true,
            "description": "The `actions` property is deprecated and not generated anymore."
          },
          "entities": {
            "$ref": "#/components/schemas/MetadataRecordNestedEntities"
          },
          "keywords": {
            "$ref": "#/components/schemas/MetadataRecordNestedKeywords"
          },
          "objects": {
            "$ref": "#/components/schemas/MetadataRecordNestedObjects",
            "deprecated": true,
            "description": "The `objects` property is deprecated and not generated anymore."
          },
          "imageText": {
            "$ref": "#/components/schemas/MetadataRecordNestedImageText"
          },
          "videoText": {
            "$ref": "#/components/schemas/MetadataRecordNestedVideoText"
          },
          "scenes": {
            "$ref": "#/components/schemas/MetadataRecordNestedRanges",
            "deprecated": true,
            "description": "The `scenes` property is deprecated and not generated anymore."
          },
          "speakers": {
            "$ref": "#/components/schemas/MetadataRecordNestedSpeakers"
          },
          "transcripts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataRecordNestedTranscripts"
            }
          },
          "documentContent": {
            "$ref": "#/components/schemas/MetadataRecordNestedDocumentContent"
          },
          "summary": {
            "type": "string",
            "example": "Summary of media asset"
          },
          "autoChapters": {
            "$ref": "#/components/schemas/MediaChapterStatus"
          },
          "file": {
            "$ref": "#/components/schemas/MetadataRecordFile"
          }
        },
        "required": [
          "status"
        ]
      },
      "MetadataCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MetadataCollection"
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "ExtractMetadataPreset": {
        "type": "object",
        "properties": {
          "presetId": {
            "$ref": "#/components/schemas/RessourceId"
          },
          "configuration": {
            "type": "string",
            "description": "preset-specific configuration as JSON. Must match the JSON schema defined for the preset.",
            "example": {
              "language": "de-v2"
            }
          }
        }
      },
      "ExtractMetadata": {
        "type": "object",
        "properties": {
          "presets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExtractMetadataPreset"
            }
          }
        }
      },
      "ErrorOnUpdate": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "example": "The field my_field must not be empty"
          }
        },
        "required": [
          "message"
        ]
      },
      "TranscriptCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataRecordNestedTranscripts"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "DefaultIdUpdate": {
        "type": "string",
        "format": "uuid",
        "description": "The object identifier.",
        "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
      },
      "MetadataTranscriptionWord": {
        "type": "object",
        "description": "default metadata transcription word",
        "properties": {
          "word": {
            "type": "string",
            "example": "freunde"
          },
          "startTime": {
            "type": "number",
            "format": "double",
            "example": 1.6834,
            "description": "Given in seconds"
          },
          "duration": {
            "type": "number",
            "format": "double",
            "example": 0.1002,
            "description": "Given in seconds"
          },
          "confidence": {
            "type": "number",
            "format": "double",
            "example": 1
          }
        }
      },
      "MetadataTranscriptParagraph": {
        "type": "object",
        "description": "Metadata record transcript paragraph",
        "properties": {
          "completed": {
            "type": "boolean",
            "example": true
          },
          "speaker": {
            "type": "string",
            "example": "A"
          },
          "speakerId": {
            "$ref": "#/components/schemas/DefaultId"
          },
          "paragraphId": {
            "$ref": "#/components/schemas/DefaultIdUpdate",
            "description": "Unique Id of the the current paragraph, used for partial saving / paragraph splitting"
          },
          "text": {
            "description": "Whole text of the paragraph.",
            "type": "string",
            "example": "Freunde, Römer, Landsleute, leiht mir euer Ohr."
          },
          "words": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataTranscriptionWord"
            }
          }
        }
      },
      "MetadataRecordTranscript": {
        "type": "object",
        "description": "Metadata record for a `Transcript` represented by a list of `paragraphs`.",
        "properties": {
          "paragraphs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataTranscriptParagraph"
            }
          }
        }
      },
      "MetadataRecordTranscriptResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MetadataRecordTranscript"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MetadataUpdateTranscriptParagraph": {
        "type": "object",
        "description": "Metadata update transcript paragraph",
        "required": [
          "speaker",
          "speakerId",
          "paragraphId",
          "text"
        ],
        "properties": {
          "speaker": {
            "type": "string",
            "example": "A"
          },
          "speakerId": {
            "$ref": "#/components/schemas/DefaultId"
          },
          "paragraphId": {
            "$ref": "#/components/schemas/DefaultIdUpdate",
            "description": "ID of the the current paragraph, used for partial saving or paragraph splitting."
          },
          "text": {
            "description": "Whole text of the paragraph.",
            "type": "string",
            "example": "Freunde, Römer, Landsleute, leiht mir euer Ohr."
          },
          "merge": {
            "description": "Optional parameter for paragraph merging, `previous` means the previous paragraph will be deleted, `next` means the next paragraph will be deleted",
            "type": "string",
            "enum": [
              "previous",
              "next"
            ]
          }
        }
      },
      "MetadataTimeAlignmentUpdateData": {
        "type": "object",
        "description": "Metadata Time Alignment Update Data",
        "properties": {
          "paragraphs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MetadataUpdateTranscriptParagraph"
            }
          }
        }
      },
      "UpdateFullTranscriptParagraph": {
        "type": "object",
        "description": "Transcript's paragraph update model",
        "required": [
          "paragraphId",
          "text"
        ],
        "properties": {
          "paragraphId": {
            "type": "string",
            "format": "uuid",
            "example": "123e4567-e89b-12d3-a456-426614174000",
            "description": "ID of the paragraph to be updated. When splitting, new paragraphs derived from the same original should use the original paragraph's ID. When merging, this ID should be the ID of the first paragraph in the merge sequence, serving as the master for the combined content."
          },
          "text": {
            "description": "Complete text of the paragraph.",
            "type": "string",
            "example": "Welcome to the meeting. Today we will discuss the project updates."
          },
          "completed": {
            "description": "Indicates whether the paragraph has been finalized.",
            "type": "boolean",
            "example": false
          }
        }
      },
      "MetadataTranscriptSpeakerInfo": {
        "title": "MetadataTranscriptSpeakerInfo",
        "description": "Schema for updating speaker information in a transcript, including speaker IDs, name changes, and paragraph targeting.",
        "type": "object",
        "required": [
          "oldSpeakerId"
        ],
        "properties": {
          "oldSpeakerId": {
            "$ref": "#/components/schemas/DefaultIdUpdate",
            "description": "The current speaker ID to be updated."
          },
          "newSpeakerId": {
            "$ref": "#/components/schemas/DefaultIdUpdate",
            "description": "The new speaker ID to assign."
          },
          "newSpeakerName": {
            "type": "string",
            "description": "New speaker name, if an update is needed. New transcripts will automatically use the new name for the speaker. Null if existing name should be used.",
            "example": "Jane Smith",
            "nullable": true
          },
          "paragraphId": {
            "type": "string",
            "format": "uuid",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22",
            "nullable": true,
            "description": "ID of paragraph where speaker should be updated. Null if the whole transcript should be affected. Setting name for a speaker is made for the whole transcript, so this parameter will be ignored."
          }
        }
      },
      "AssignTranscriptAsSubtitles": {
        "type": "object",
        "description": "Assign transcript as subtitles",
        "properties": {
          "includeSpeakerLabel": {
            "type": "boolean",
            "description": "If true the speaker label will be added to subtitles each time speaker changes. Default false.",
            "example": true
          }
        }
      },
      "TranscriptDownloadType": {
        "type": "string",
        "description": "Type of transcript that should be downloaded.",
        "enum": [
          "json",
          "txt",
          "srt",
          "vtt",
          "docx"
        ]
      },
      "NullableResourceId": {
        "type": "string",
        "format": "uuid",
        "description": "The resource ID. Represents a globally unique identifier (GUID).",
        "example": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "nullable": true
      },
      "SubtitleResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Subtitle"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MediaSeoClip": {
        "type": "object",
        "properties": {
          "@type": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Name of the section"
          },
          "startOffset": {
            "type": "number",
            "description": "Start time given in seconds"
          },
          "url": {
            "type": "string",
            "description": "Url with provided start timestamp"
          }
        }
      },
      "MediaSeoStructuredData": {
        "type": "object",
        "properties": {
          "@context": {
            "type": "string"
          },
          "@type": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "`Media` asset name (i.e. its \"title\").\n"
          },
          "description": {
            "type": "string",
            "description": "`Media` asset description.\n"
          },
          "thumbnailUrl": {
            "type": "string"
          },
          "uploadDate": {
            "type": "string",
            "example": "2016-03-31T08:00:00+08:00"
          },
          "duration": {
            "type": "string",
            "description": "The `duration` of the video in ISO 8601 format.",
            "example": "PT00H30M5S"
          },
          "contentUrl": {
            "type": "string",
            "description": "URL of the `Media` asset."
          },
          "hasPart": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaSeoClip"
            }
          }
        }
      },
      "UpdateFileAttachment": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "example": "Security instructions"
              },
              "description": {
                "type": "string",
                "example": "this pdf contains detailed security instructions as an addition to the video"
              }
            }
          }
        ]
      },
      "CreateFileAttachment": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateFileAttachment"
          }
        ],
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "example": "security.pdf",
            "description": "The file extension is mandatory in the `fileName``. Following file extensions are supported - .pdf,.docx,.doc,.jpg,.jpeg,.png,.gif,.bmp,.svg,.webp,.xps,.txt,.xml,.rtf,.xlsx,.xls,.csv,.pptx,.ppt,.pps,.key,.odt,.ods,.odp,.odg,.odf,.vsd,.vsdx,.one,.dwg,.dxf,.mobi,.azw,.epub,.mp3,.aac,.wav,.wma,.flac,.aif,.aiff"
          },
          "fileSize": {
            "type": "integer",
            "format": "int64",
            "example": 45282,
            "description": "The size of the file in bytes"
          }
        },
        "required": [
          "fileName",
          "fileSize"
        ]
      },
      "FileAttachment": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/CreateFileAttachment"
          },
          {
            "type": "object",
            "properties": {
              "source": {
                "type": "string",
                "format": "uri",
                "example": "https://api.streamdiver.com/v2/media/c3a8daf7-6f18-4387-ab9f-190021ec322c/attachments/bcdc5dd5-ec10-413d-8741-abce1f3aca26/binary",
                "description": "The URL to access the `File Attachment` binary file"
              },
              "mimeType": {
                "type": "string",
                "readOnly": true,
                "example": "application/pdf",
                "description": "The MIME type of the `File Attachment`"
              }
            },
            "required": [
              "source",
              "mimeType",
              "fileSize"
            ]
          }
        ]
      },
      "FileAttachmentCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/FileAttachment"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateFileAttachmentUploadResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/CreateFileAttachment"
          },
          {
            "type": "object",
            "properties": {
              "uploadUrl": {
                "type": "string",
                "format": "uri",
                "description": "The presigned URL for the upload of the `File` attachment"
              }
            },
            "required": [
              "uploadUrl"
            ]
          }
        ]
      },
      "CreateFileAttachmentResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateFileAttachmentUploadResponse"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "FileAttachmentResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/FileAttachment"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "SearchType": {
        "type": "string",
        "description": "Entity types to search for.",
        "enum": [
          "all",
          "mediaasset",
          "channel"
        ]
      },
      "SearchField": {
        "type": "string",
        "enum": [
          "name",
          "description",
          "tag",
          "transcript",
          "speakers",
          "entities",
          "keywords",
          "actions",
          "objects",
          "image_text",
          "video_text",
          "document_content",
          "exif_metadata"
        ]
      },
      "SearchFields": {
        "type": "array",
        "description": "Fields to search for. If none provided, all fields will be searched.",
        "items": {
          "$ref": "#/components/schemas/SearchField"
        }
      },
      "SearchFilterAssetTypes": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/MediaType"
        }
      },
      "SearchHighlightedMatch": {
        "description": "highlighted match is enclosed in <em>...</em> tags.",
        "example": "<em>highlighted</em>,",
        "type": "string"
      },
      "SearchHighlightedMatches": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/SearchHighlightedMatch"
        }
      },
      "ExifMetadata": {
        "type": "object",
        "properties": {
          "createDateUtc": {
            "type": "string",
            "format": "date",
            "description": "The creation date of the `Media` asset source file.",
            "nullable": true
          },
          "cameraModelManufacturer": {
            "type": "string"
          },
          "cameraModelName": {
            "type": "string"
          },
          "cameraLensModel": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "credit": {
            "type": "string"
          },
          "copyright": {
            "type": "string"
          },
          "xResolution": {
            "type": "integer",
            "description": "The horizontal resolution of an image `Media` asset in dpi",
            "nullable": true
          },
          "yResolution": {
            "type": "integer",
            "description": "The vertical resolution of an image `Media` asset in dpi",
            "nullable": true
          }
        }
      },
      "MetadataSearchVideoText": {
        "type": "object",
        "description": "Metadata record for video text",
        "properties": {
          "start": {
            "type": "number",
            "format": "double",
            "example": 2
          },
          "duration": {
            "type": "number",
            "format": "double",
            "example": 2
          },
          "frameIndex": {
            "type": "number",
            "example": 0
          },
          "lines": {
            "type": "string",
            "example": "Example"
          }
        }
      },
      "SearchResultMedia": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Aufzeichnung Vortrag Dr. Klöbner"
              },
              "nameHighlights": {
                "$ref": "#/components/schemas/SearchHighlightedMatches"
              },
              "description": {
                "type": "string",
                "example": "Der Vortrag Dr. Klöbner - Lorem ipsum dolor sit."
              },
              "descriptionHighlights": {
                "$ref": "#/components/schemas/SearchHighlightedMatches"
              },
              "type": {
                "$ref": "#/components/schemas/MediaType"
              },
              "thumbnail": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Thumbnail"
                  }
                ]
              },
              "preview": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Preview"
                  }
                ]
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "MuellerLuedenscheidt",
                  "Kloebner",
                  "Duck"
                ]
              },
              "tagsHighlights": {
                "$ref": "#/components/schemas/SearchHighlightedMatches"
              },
              "filesize": {
                "type": "integer",
                "format": "int64",
                "readOnly": true,
                "example": 123456789
              },
              "bitrate": {
                "type": "integer",
                "format": "int64",
                "description": "Bitrate in Kbps. For videos it is the bitrate for the video stream (even if it also has audio), for audios it is the bitrate for the audio stream.",
                "example": 8388608
              },
              "duration": {
                "type": "number",
                "format": "double",
                "description": "Duration of the media in seconds",
                "example": 300
              },
              "height": {
                "type": "integer",
                "nullable": true,
                "example": 640
              },
              "width": {
                "type": "integer",
                "nullable": true,
                "example": 480
              },
              "exifMetadata": {
                "$ref": "#/components/schemas/ExifMetadata"
              },
              "metadata": {
                "type": "object",
                "properties": {
                  "transcript": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "paragraphId": {
                          "$ref": "#/components/schemas/DefaultId"
                        },
                        "words": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "word": {
                                "$ref": "#/components/schemas/SearchHighlightedMatch"
                              },
                              "startTime": {
                                "type": "number",
                                "format": "double",
                                "example": 1.6834
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "speakers": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordWithInstances"
                    }
                  },
                  "entities": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordEntity"
                    }
                  },
                  "actions": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordWithInstances"
                    }
                  },
                  "objects": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordObject"
                    }
                  },
                  "imageText": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordImageText"
                    }
                  },
                  "keywords": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordKeyword"
                    }
                  },
                  "videoText": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataSearchVideoText"
                    }
                  },
                  "documentContent": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/MetadataRecordDocumentContentPage"
                    }
                  }
                }
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "permissionsInAllChannels": {
                "type": "array",
                "readOnly": true,
                "deprecated": true,
                "description": "list of permission the user has in all referenced channels",
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "channels": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimal"
                }
              },
              "slug": {
                "$ref": "#/components/schemas/Slug"
              },
              "shortId": {
                "$ref": "#/components/schemas/ShortId"
              }
            }
          }
        ]
      },
      "SearchResultChannel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Channel 5"
              },
              "nameHighlights": {
                "$ref": "#/components/schemas/SearchHighlightedMatches"
              },
              "description": {
                "type": "string",
                "example": "Description for channel 5. Lorem ipsum dolor sit."
              },
              "descriptionHighlights": {
                "$ref": "#/components/schemas/SearchHighlightedMatches"
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "thumbnail": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Thumbnail"
                  }
                ]
              },
              "mediaCount": {
                "readOnly": true,
                "type": "integer",
                "description": "Media count assosiated with channel"
              },
              "slug": {
                "$ref": "#/components/schemas/Slug"
              },
              "shortId": {
                "$ref": "#/components/schemas/ShortId"
              }
            }
          }
        ]
      },
      "SearchResultResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "mediaAssets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchResultMedia"
                    }
                  },
                  "channels": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchResultChannel"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "SearchSemanticResultMedia": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SearchResultMedia"
          },
          {
            "type": "object",
            "properties": {
              "timestamps": {
                "type": "array",
                "items": {
                  "type": "integer",
                  "description": "Timestamps array in miliseconds",
                  "example": [
                    1,
                    2,
                    3
                  ]
                }
              }
            }
          }
        ]
      },
      "SearchSemanticMediaResultResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "mediaAssets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/SearchSemanticResultMedia"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "RecommendationResultMedia": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Aufzeichnung Vortrag Dr. Klöbner"
              },
              "description": {
                "type": "string",
                "example": "Der Vortrag Dr. Klöbner - Lorem ipsum dolor sit."
              },
              "type": {
                "$ref": "#/components/schemas/MediaType"
              },
              "thumbnail": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Thumbnail"
                  }
                ]
              },
              "preview": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Preview"
                  }
                ]
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "MuellerLuedenscheidt",
                  "Kloebner",
                  "Duck"
                ]
              },
              "filesize": {
                "type": "integer",
                "format": "int64",
                "nullable": true,
                "example": 123456789
              },
              "bitrate": {
                "type": "integer",
                "format": "int64",
                "nullable": true,
                "description": "Bitrate in Kbps. For videos it is the bitrate for the video stream (even if it also has audio), for audios it is the bitrate for the audio stream.",
                "example": 8388608
              },
              "duration": {
                "type": "number",
                "format": "double",
                "nullable": true,
                "description": "Duration of the media in seconds",
                "example": 300
              },
              "usage": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UsageSummary"
                  }
                ]
              },
              "videoHeight": {
                "type": "integer",
                "nullable": true,
                "example": 640
              },
              "videoWidth": {
                "type": "integer",
                "nullable": true,
                "example": 480
              },
              "sections": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "sectionId": {
                      "$ref": "#/components/schemas/DefaultId"
                    },
                    "start": {
                      "type": "number",
                      "format": "double",
                      "description": "Start of the segment in seconds",
                      "example": 50.123
                    },
                    "duration": {
                      "type": "number",
                      "format": "double",
                      "description": "Duration of the segment in seconds",
                      "example": 100.957
                    },
                    "preview": {
                      "readOnly": true,
                      "description": "Preview of the segment",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Preview"
                        }
                      ]
                    },
                    "thumbnail": {
                      "readOnly": true,
                      "description": "Thumbnail of the segment",
                      "allOf": [
                        {
                          "$ref": "#/components/schemas/Thumbnail"
                        }
                      ]
                    },
                    "transcript": {
                      "type": "array",
                      "deprecated": true,
                      "description": "This property is no longer populated. Use `summary` instead.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "words": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "word": {
                                  "type": "string",
                                  "example": "something"
                                },
                                "startTime": {
                                  "type": "number",
                                  "format": "double",
                                  "example": 1.6834
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "title": {
                      "type": "string",
                      "example": "This is a title of the section"
                    },
                    "summary": {
                      "type": "string",
                      "nullable": true,
                      "example": "This is a summary of the section"
                    }
                  }
                }
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "channels": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimal"
                }
              },
              "slug": {
                "$ref": "#/components/schemas/Slug"
              },
              "shortId": {
                "$ref": "#/components/schemas/ShortId"
              }
            }
          }
        ]
      },
      "RecommendationResultResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "mediaAssets": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/RecommendationResultMedia"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "SearchRangesResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "fileSizeFrom": {
                    "type": "integer",
                    "format": "int64",
                    "nullable": true
                  },
                  "fileSizeTo": {
                    "type": "integer",
                    "format": "int64",
                    "nullable": true
                  },
                  "bitrateFrom": {
                    "type": "integer",
                    "nullable": true
                  },
                  "bitrateTo": {
                    "type": "integer",
                    "nullable": true
                  },
                  "durationFrom": {
                    "type": "number",
                    "format": "double",
                    "nullable": true
                  },
                  "durationTo": {
                    "type": "number",
                    "format": "double",
                    "nullable": true
                  },
                  "widthFrom": {
                    "type": "integer",
                    "nullable": true
                  },
                  "widthTo": {
                    "type": "integer",
                    "nullable": true
                  },
                  "heightFrom": {
                    "type": "integer",
                    "nullable": true
                  },
                  "heightTo": {
                    "type": "integer",
                    "nullable": true
                  },
                  "dpiFrom": {
                    "type": "integer",
                    "nullable": true
                  },
                  "dpiTo": {
                    "type": "integer",
                    "nullable": true
                  },
                  "before": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "after": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  }
                }
              }
            }
          }
        ]
      },
      "SearchRequest": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Entity types to search for.",
            "$ref": "#/components/schemas/SearchType"
          },
          "text": {
            "type": "string"
          },
          "fields": {
            "$ref": "#/components/schemas/SearchFields"
          },
          "assettypes": {
            "$ref": "#/components/schemas/SearchFilterAssetTypes"
          },
          "speakers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "entities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "objects": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filesizefrom": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "filesizeto": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "bitratefrom": {
            "type": "integer",
            "nullable": true
          },
          "bitrateto": {
            "type": "integer",
            "nullable": true
          },
          "durationfrom": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "durationto": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "widthfrom": {
            "type": "integer",
            "nullable": true
          },
          "widthto": {
            "type": "integer",
            "nullable": true
          },
          "heightfrom": {
            "type": "integer",
            "nullable": true
          },
          "heightto": {
            "type": "integer",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "channelId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "mediaAssetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "speakerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "createdByUserId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "createdBy": {
            "type": "string"
          },
          "includeSoftDeleted": {
            "type": "boolean"
          },
          "dpifrom": {
            "type": "integer",
            "nullable": true
          },
          "dpito": {
            "type": "integer",
            "nullable": true
          },
          "after": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "before": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "required": [
          "type"
        ]
      },
      "SearchScope": {
        "type": "string",
        "description": "Which scope used for the `Search`.",
        "enum": [
          "User",
          "Tenant",
          "System"
        ]
      },
      "UpdateSearchPreset": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the `Search` preset.",
            "example": "My stored search for cats"
          },
          "searchRequest": {
            "$ref": "#/components/schemas/SearchRequest",
            "description": "See [Search endpoint] (#tag/Search/operation/getSearch) documentation for more details about the parameters."
          },
          "searchScope": {
            "$ref": "#/components/schemas/SearchScope"
          }
        },
        "required": [
          "name",
          "searchRequest",
          "searchScope"
        ]
      },
      "CreateSearchPreset": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateSearchPreset"
          }
        ],
        "type": "object",
        "properties": {
          "searchVariant": {
            "type": "string",
            "description": "Which variant to used for the `Search`.",
            "enum": [
              "full_text",
              "audio_based_semantic",
              "visual_based_semantic"
            ],
            "example": "full_text"
          }
        },
        "required": [
          "searchVariant"
        ]
      },
      "SearchPreset": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/CreateSearchPreset"
          },
          {
            "type": "object"
          }
        ]
      },
      "SearchPresetCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SearchPreset"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "SearchPresetResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "$ref": "#/components/schemas/SearchPreset"
              }
            }
          }
        ]
      },
      "UploadDuplicateInformation": {
        "type": "object",
        "description": "The result of the check if the file is already in the tenant's media archive (based on the `fileName`). \nThis information is only provided if duplicate checking is enabled in the [tenant settings](#tag/Tenants/operation/getCurrentTenantSettings).\n",
        "properties": {
          "isDuplicate": {
            "type": "boolean",
            "readOnly": true,
            "description": "Indicates whether a duplicate has been found or not.",
            "example": true
          },
          "duplicateInformationMessage": {
            "type": "string",
            "readOnly": true,
            "description": "Textual information regarding the duplicate found.",
            "example": "A file with this name was uploaded on 20.12.2024 by user max.mustermann"
          },
          "duplicateAsset": {
            "description": "The duplicate `Media` asset found (if readable in the current authorization scope).",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Media"
              }
            ]
          }
        }
      },
      "UploadInput": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "put": "#/components/schemas/UploadInputPut",
            "s3-multipart": "#/components/schemas/UploadInputS3Multipart",
            "s3-multipart-presigned": "#/components/schemas/UploadInputS3MultipartPresigned"
          }
        },
        "properties": {
          "type": {
            "$ref": "#/components/schemas/UploadType"
          }
        },
        "example": {
          "s3Endpoint": "https://storage-example.streamdiver.com/",
          "bucket": "mybucket",
          "objectKey": "videos/2022/12/65e6adcf-175a-400d-8a0c-f20a099157ce.mp4",
          "credentials": {
            "accessKey": "6N2BALX7ELO827DXS3GK",
            "secretKey": "23JKqAD+um8ObHqzfIh+bfqwG9V8qs9tFY6MqeFR+xxx",
            "sessionToken": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiI2TjJCQUxYN0VMTzgyN0RYUzNHSyIsImFjciI6IjAiLCJhdWQiOiJhY2NvdW50IiwiYXV0aF90aW1l...ZHgwdRnsp0gFdwChb7VlbPs-Gr_RNUz9EV7TggCD59qjCFAKjNrVHfOSVkKvYEMe0PvwfRKjnJl3A_mBA"
          },
          "type": "s3-multipart"
        }
      },
      "UploadInputPut": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UploadInput"
          },
          {
            "type": "object",
            "description": "The input for single `PUT` request.",
            "properties": {
              "url": {
                "description": "A temporary, presigned URL used to securely upload a file via a `PUT` request.",
                "type": "string"
              }
            }
          }
        ]
      },
      "UploadCredentials": {
        "type": "object",
        "description": "Temporary credentials to authenticate the S3 multipart upload of the file.",
        "properties": {
          "accessKey": {
            "type": "string",
            "readOnly": true,
            "description": "AccessKey ID for the upload",
            "example": "6N2BALX7ELO827DXS3GK"
          },
          "secretKey": {
            "type": "string",
            "readOnly": true,
            "description": "Secret access key for the upload",
            "example": "23JKqAD+um8ObHqzfIh+bfqwG9V8qs9tFY6MqeFR+xxx"
          },
          "sessionToken": {
            "type": "string",
            "readOnly": true,
            "description": "Session token for the upload",
            "example": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2Nlc3NLZXkiOiI2TjJCQUxYN0VMTzgyN0RYUzNHSyIsImFjciI6IjAiLCJhdWQiOiJhY2NvdW50IiwiYXV0aF90aW1l...ZHgwdRnsp0gFdwChb7VlbPs-Gr_RNUz9EV7TggCD59qjCFAKjNrVHfOSVkKvYEMe0PvwfRKjnJl3A_mBA"
          }
        }
      },
      "UploadInputS3Multipart": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UploadInput"
          },
          {
            "type": "object",
            "description": "The input for multipart S3 upload.",
            "properties": {
              "s3Endpoint": {
                "description": "The S3 endpoint URL.",
                "type": "string"
              },
              "bucket": {
                "description": "The S3 bucket name.",
                "type": "string",
                "maxLength": 255
              },
              "objectKey": {
                "description": "The S3 object key.",
                "type": "string",
                "maxLength": 255,
                "example": "videos/2022/12/65e6adcf-175a-400d-8a0c-f20a099157ce.mp4"
              },
              "credentials": {
                "description": "Temporary credentials to authenticate the S3 multipart upload of the file.",
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UploadCredentials"
                  }
                ]
              }
            }
          }
        ]
      },
      "UploadInputS3MultipartPresignedPart": {
        "type": "object",
        "description": "A single multipart upload part.",
        "required": [
          "partNumber",
          "url",
          "expiresAtUtc"
        ],
        "properties": {
          "partNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "Sequential part number (starting at 1).",
            "example": 1
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Presigned URL for uploading this part."
          },
          "expiresAtUtc": {
            "type": "string",
            "format": "date-time",
            "description": "UTC timestamp when the presigned URL expires.",
            "example": "2024-12-12T23:20:30.50Z"
          }
        }
      },
      "UploadInputS3MultipartPresigned": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UploadInput"
          },
          {
            "type": "object",
            "description": "The input for multipart S3 upload using presigned URLs.",
            "required": [
              "partSize",
              "parts"
            ],
            "properties": {
              "s3Endpoint": {
                "description": "The S3 endpoint URL.",
                "type": "string"
              },
              "bucket": {
                "description": "The S3 bucket name.",
                "type": "string"
              },
              "objectKey": {
                "description": "The S3 object key.",
                "type": "string",
                "maxLength": 255,
                "example": "videos/2022/12/65e6adcf-175a-400d-8a0c-f20a099157ce.mp4"
              },
              "partSize": {
                "type": "integer",
                "format": "int64",
                "description": "Size of each multipart upload part in bytes.",
                "example": 104857600
              },
              "parts": {
                "type": "array",
                "description": "List of presigned upload URLs for each multipart part.",
                "items": {
                  "$ref": "#/components/schemas/UploadInputS3MultipartPresignedPart"
                }
              }
            }
          }
        ]
      },
      "UploadType": {
        "type": "string",
        "enum": [
          "s3-multipart",
          "put",
          "s3-multipart-presigned"
        ],
        "description": "The requested upload type. **Deprecated:** `s3-multipart` is deprecated and will be removed in a future version. Use `s3-multipart-presigned` instead."
      },
      "Upload": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObjectSimple"
          },
          {
            "type": "object",
            "properties": {
              "fileName": {
                "type": "string",
                "maxLength": 255
              },
              "fileSize": {
                "type": "string",
                "nullable": true,
                "description": "Declared file size defined in MB. Must be a non-floating point number."
              },
              "status": {
                "type": "string",
                "enum": [
                  "running",
                  "error",
                  "finished",
                  "waiting"
                ],
                "example": "waiting",
                "readOnly": true
              },
              "timeout": {
                "type": "integer",
                "format": "int32",
                "example": 7200
              },
              "duplicateInformation": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UploadDuplicateInformation"
                  }
                ]
              },
              "assetId": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RessourceId"
                  }
                ],
                "readOnly": true
              },
              "transcriptLanguageCode": {
                "type": "string",
                "maxLength": 255,
                "example": "de-v2",
                "description": "The speech-to-text language model applied for the transcription."
              },
              "input": {
                "readOnly": true,
                "description": "The input properties for the requested upload type.",
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UploadInput"
                  }
                ]
              },
              "credentials": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UploadCredentials"
                  }
                ],
                "description": "Use `input.credentials` instead",
                "deprecated": true
              },
              "s3Endpoint": {
                "type": "string",
                "example": "https://storage-example.streamdiver.com/",
                "description": "Use `input.s3Endpoint` instead",
                "deprecated": true
              },
              "bucket": {
                "type": "string",
                "maxLength": 255,
                "example": "mybucket",
                "description": "Use `input.bucket` instead",
                "deprecated": true
              },
              "objectKey": {
                "type": "string",
                "maxLength": 255,
                "example": "videos/2022/12/65e6adcf-175a-400d-8a0c-f20a099157ce.mp4",
                "description": "Use `input.objectKey` instead",
                "deprecated": true
              }
            },
            "required": [
              "fileName",
              "status",
              "token"
            ]
          }
        ]
      },
      "UploadCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Upload"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateUpload": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "maxLength": 255,
            "description": "The name of the file (including its file extension) to be uploaded."
          },
          "fileSize": {
            "type": "string",
            "nullable": true,
            "description": "The size of the file to be uploaded in bytes. Must be a non-floating point number."
          },
          "transcriptLanguageCode": {
            "type": "string",
            "maxLength": 255,
            "example": "de-v2",
            "description": "The speech-to-text language model to be applied for the transcription."
          },
          "useVad": {
            "type": "boolean",
            "description": "Whether to use voice activity detection for transcription.",
            "default": true
          },
          "type": {
            "description": "The input type for this upload.",
            "allOf": [
              {
                "$ref": "#/components/schemas/UploadType"
              }
            ],
            "default": "s3-multipart-presigned"
          }
        },
        "required": [
          "fileName"
        ]
      },
      "UploadResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Upload"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MultipartUploadPart": {
        "type": "object",
        "description": "Represents a single uploaded part in a multipart upload.",
        "required": [
          "partNumber",
          "etag"
        ],
        "properties": {
          "partNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "Sequential part number of the uploaded part.",
            "example": 1
          },
          "etag": {
            "type": "string",
            "description": "ETag returned by S3 after uploading the part.",
            "example": "d41d8cd98f00b204e9800998ecf8427e"
          }
        }
      },
      "MultipartUploadParts": {
        "type": "object",
        "properties": {
          "parts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultipartUploadPart"
            }
          }
        }
      },
      "FileImportRequest": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Source URL of `Media` to import.",
            "example": "https://youtube.com/video?id=12345"
          },
          "name": {
            "type": "string",
            "description": "Name given to imported media asset. By default, the underlying file name will be used."
          },
          "filename": {
            "type": "string",
            "description": "Optional filename. Must include file extension and is used as a fallback when the imported file type cannot be recognized.",
            "pattern": "^[a-zA-Z0-9-_]{0,255}.[a-zA-Z0-9]{0,4}$"
          },
          "transcriptLanguageCode": {
            "type": "string",
            "maxLength": 255,
            "example": "de-v2",
            "description": "If not specified, the default transcription model for the `Tenant` will be used. The list of models can be fetched using the dedicated [endpoint](#tag/Tenants/operation/getMetadataTranscriptionLanguageModels).\n"
          },
          "status": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "None",
              "Success",
              "Error"
            ]
          },
          "uploadId": {
            "readOnly": true,
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "errorMessages": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CreateFilesImport": {
        "type": "object",
        "properties": {
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileImportRequest"
            }
          },
          "channel": {
            "type": "string",
            "format": "uuid",
            "example": "39baf1f8-38b9-40e9-9ce8-edfb76f3c0b7",
            "nullable": true,
            "description": "Channel identifier to which `Media` should be imported. By default, the private user channel will be used.\n"
          }
        }
      },
      "FilesImport": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/CreateFilesImport"
          },
          {
            "type": "object",
            "properties": {
              "status": {
                "readOnly": true,
                "type": "string",
                "enum": [
                  "queued",
                  "running",
                  "finished",
                  "error",
                  "cancelled"
                ]
              }
            }
          }
        ]
      },
      "FilesImportCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/FilesImport"
                }
              }
            }
          }
        ]
      },
      "FilesImportResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/FilesImport"
              }
            }
          }
        ]
      },
      "DownloadNew": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "description": "The title of the `Download`.",
                "example": "Favourites"
              },
              "description": {
                "type": "string",
                "description": "The description of the `Download`.",
                "example": "All-time best videos"
              },
              "selectedMediaIds": {
                "description": "The `Media` assets selected for this `Download`. Only applicable for authenticated users.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DefaultId"
                }
              },
              "selectedRenditionIds": {
                "description": "The `Renditions` selected for this `Download`. Limited to a single rendition ID for anonymous users.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/DefaultId"
                }
              },
              "selectedTranscripts": {
                "description": "The `Transcripts` selected for this `Download`. Only applicable for authenticated users.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "$ref": "#/components/schemas/DefaultId"
                    },
                    "format": {
                      "type": "string",
                      "enum": [
                        "txt",
                        "srt",
                        "json"
                      ]
                    }
                  }
                }
              },
              "files": {
                "description": "The files associated with this `Download`.",
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "object",
                  "readOnly": true,
                  "properties": {
                    "url": {
                      "description": "The URL pointing to a downloadable file. For downloads created by anonymous users a presigned URL is provided.",
                      "type": "string",
                      "example": "https://api.streamdiver.com/v2/downloads/file/f904e98a-18aa-4999-848c-f9e637068f71"
                    },
                    "size": {
                      "description": "The size of the file in bytes.",
                      "type": "integer",
                      "format": "int64",
                      "example": 123456789
                    },
                    "mimeType": {
                      "description": "The MIME type of the file (e.g., `video/mp4`, `application/zip`).",
                      "type": "string",
                      "example": "application/zip"
                    }
                  }
                }
              },
              "compressed": {
                "description": "Indicates whether the downloaded file is compressed or not (only applicable for authenticated users).",
                "type": "boolean",
                "example": true
              },
              "expires": {
                "description": "The expiration date and time of the `Download` in UTC (only applicable for authenticated users). \nIf this field is empty, the tenant-specific default expiration will be used.\n",
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "status": {
                "description": "The status of the `Download` preparation.",
                "readOnly": true,
                "type": "string",
                "enum": [
                  "preparing",
                  "ready"
                ]
              }
            }
          }
        ]
      },
      "Download": {
        "readOnly": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/DownloadNew"
          }
        ]
      },
      "DownloadCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Download"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "DownloadResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Download"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "TagCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Tag"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "TagResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Tag"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "UpdateChannel": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Channel 5",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "example": "Description for channel 5."
          },
          "manualSort": {
            "type": "integer",
            "minimum": -1
          },
          "downloadEnabled": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether any authorized channel members, regardless of channel role, can [download](#tag/Downloads/operation/createDownload) media assets from this channel.\n"
          },
          "publicPortalSharingEnabled": {
            "type": "boolean",
            "example": true,
            "description": "If disabled, you can not share the `Channel` and its `Media Assets` from the PublicPortal."
          },
          "publicPortalDownloadEnabled": {
            "type": "boolean",
            "example": true,
            "description": "Indicates whether anonymous users can [download](#tag/Downloads/operation/createDownload) media assets from this channel. \nThis setting applies only to channels which are accessible to anonymous users (e.g., shared or public visibility).\n"
          }
        }
      },
      "LivestreamMinimal": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObjectSimple"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "description": "Name of the live stream.",
                "type": "string",
                "example": "Live - Vortrag Dr. Klöbner",
                "maxLength": 255
              },
              "thumbnailUrl": {
                "readOnly": true,
                "description": "url to the actual thumbnail",
                "type": "string"
              },
              "status": {
                "description": "The status of the given livestream.",
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LivestreamStatus"
                  }
                ]
              }
            }
          }
        ],
        "required": [
          "id",
          "name",
          "status"
        ]
      },
      "DesignSettingsBase": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/RessourceId"
          },
          "name": {
            "type": "string",
            "example": "Template 1",
            "maxLength": 255
          },
          "isTemplate": {
            "readOnly": true,
            "type": "boolean"
          },
          "isMain": {
            "readOnly": true,
            "description": "True for tenant level design settings.",
            "type": "boolean"
          }
        }
      },
      "ChannelDesign": {
        "type": "object",
        "nullable": true,
        "properties": {
          "mainColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "pageBackgroundColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "headerColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "footerColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "boxColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "headerFontColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "footerFontColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "boxFontColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "headerfontUrl": {
            "type": "string",
            "description": "header font of the channel, font/woff",
            "readOnly": true
          },
          "bodyfontUrl": {
            "type": "string",
            "description": "body font of the channel, font/woff",
            "readOnly": true
          },
          "mainImageUrl": {
            "type": "string",
            "description": "main image of the channel, image/png",
            "readOnly": true
          },
          "logoUrl": {
            "type": "string",
            "description": "logo of the channel, image/svg+xml",
            "readOnly": true
          },
          "faviconUrl": {
            "type": "string",
            "description": "favicon of the channel, image/x-icon",
            "readOnly": true
          },
          "facebookShareImageUrl": {
            "type": "string",
            "description": "facebook share image of the channel, image/jpeg",
            "readOnly": true
          },
          "twitterShareImageUrl": {
            "type": "string",
            "description": "twitter share image of the channel, image/jpeg",
            "readOnly": true
          },
          "customCss": {
            "type": "string",
            "example": ".mdl-typography--display-1-color-contrast {opacity: 1;}"
          }
        }
      },
      "ChannelDesignSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DesignSettingsBase"
          },
          {
            "type": "object",
            "description": "design settings object",
            "properties": {
              "channelDesign": {
                "$ref": "#/components/schemas/ChannelDesign"
              }
            }
          }
        ]
      },
      "PlayButtonPosition": {
        "type": "object",
        "properties": {
          "x": {
            "default": 0,
            "type": "integer",
            "example": 900
          },
          "y": {
            "default": 0,
            "type": "integer",
            "example": 600
          }
        }
      },
      "PlayerBorder": {
        "type": "object",
        "properties": {
          "color": {
            "type": "string",
            "example": "#FAFAFA"
          },
          "width": {
            "type": "string",
            "example": "1px"
          },
          "style": {
            "type": "string",
            "example": "solid"
          }
        }
      },
      "PlayerDesign": {
        "type": "object",
        "nullable": true,
        "properties": {
          "timelineColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "cleanPlayer": {
            "type": "boolean",
            "example": true
          },
          "playButtonColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "playButtonText": {
            "type": "string",
            "nullable": true,
            "example": "Streamdiver Player"
          },
          "playButtonImageUrl": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "playButton image, image/png",
            "example": "https://staging-api.streamdiver.com/v2/channels/05215081-83ec-4488-92a6-d3827ca49658/playButtonImage"
          },
          "playButtonPositon": {
            "$ref": "#/components/schemas/PlayButtonPosition"
          },
          "playerBorder": {
            "type": "array",
            "maxItems": 4,
            "description": "Position reflects CSS convention, eg. 2-element array applies first settings for top and bottom and second for right and left border",
            "items": {
              "$ref": "#/components/schemas/PlayerBorder"
            }
          },
          "enableMutedAutoplay": {
            "type": "boolean",
            "example": false
          },
          "activateInstructionsForPlaying": {
            "type": "boolean",
            "example": true
          },
          "showOverlayPlayerLogo": {
            "type": "boolean",
            "example": true
          },
          "overlayPlayerLogoUrl": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "overlayPlayer logo, image/png",
            "example": "https://staging-api.streamdiver.com/v2/channels/05215081-83ec-4488-92a6-d3827ca49658/overlayPlayerLogo"
          },
          "overlayPlayerLogoPosition": {
            "type": "string",
            "description": "Value should reflect CSS position value",
            "example": "top-left"
          },
          "showToolbarPlayerLogo": {
            "type": "boolean",
            "example": true
          },
          "toolbarPlayerLogoUrl": {
            "type": "string",
            "readOnly": true,
            "nullable": true,
            "description": "toolbarPlayer logo, image/png",
            "example": "https://staging-api.streamdiver.com/v2/tenants/05215081-83ec-4488-92a6-d3827ca49658/toolbarPlayerLogo"
          },
          "enableControls": {
            "type": "boolean",
            "example": true
          },
          "enablePopout": {
            "type": "boolean",
            "example": true
          },
          "loopEnabled": {
            "type": "boolean",
            "example": true
          }
        }
      },
      "PlayerDesignSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DesignSettingsBase"
          },
          {
            "type": "object",
            "description": "design settings object",
            "properties": {
              "playerDesign": {
                "$ref": "#/components/schemas/PlayerDesign"
              }
            }
          }
        ]
      },
      "Channel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/UpdateChannel"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "readOnly": true,
                "enum": [
                  "user",
                  "group",
                  "trash",
                  "interactive",
                  "internal"
                ]
              },
              "visibility": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChannelVisibility"
                  }
                ]
              },
              "thumbnail": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Thumbnail"
                  }
                ]
              },
              "featuredAtUtc": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "moment where the channel was featured",
                "example": "2020-04-12T23:20:50.52Z",
                "nullable": true
              },
              "mediaCount": {
                "type": "integer"
              },
              "media": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/MediaMinimal"
                }
              },
              "livestreams": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/LivestreamMinimal"
                }
              },
              "roles": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/RoleDetailed"
                }
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "mediaAssetsTags": {
                "type": "array",
                "description": "`Tag` names of all `Media` assets within the `Channel`.\n",
                "items": {
                  "type": "string"
                },
                "example": [
                  "MuellerLuedenscheidt",
                  "Kloebner",
                  "Duck"
                ]
              },
              "channelDesign": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChannelDesignSettings"
                  }
                ]
              },
              "playerDesign": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/PlayerDesignSettings"
                  }
                ]
              },
              "slug": {
                "$ref": "#/components/schemas/Slug"
              },
              "shortId": {
                "$ref": "#/components/schemas/ShortId"
              }
            },
            "required": [
              "name"
            ]
          }
        ]
      },
      "ChannelCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Channel"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateChannel": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateChannel"
          }
        ],
        "required": [
          "name"
        ]
      },
      "ChannelResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Channel"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "UpdateChannelVisibility": {
        "type": "object",
        "properties": {
          "visibility": {
            "$ref": "#/components/schemas/ChannelVisibility"
          }
        },
        "required": [
          "visibility"
        ]
      },
      "ChannelMember": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "user": "#/components/schemas/UserChannelMember",
            "usergroup": "#/components/schemas/UserGroupChannelMember"
          }
        },
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "User or user group id",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "audit": {
            "$ref": "#/components/schemas/Audit"
          },
          "displayName": {
            "type": "string",
            "description": "Current user/user group's name",
            "example": "Group 4711",
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/MemberType"
          },
          "role": {
            "$ref": "#/components/schemas/ChannelMemberRole"
          },
          "permissions": {
            "description": "The member's permissions.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "readOnly": true
          }
        },
        "required": [
          "id",
          "displayName",
          "type",
          "role",
          "permissions"
        ]
      },
      "UserChannelMember": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelMember"
          }
        ]
      },
      "MemberType": {
        "type": "string",
        "enum": [
          "user",
          "usergroup"
        ],
        "example": [
          "user",
          "usergroup"
        ]
      },
      "PermissionConflict": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "Member id (`User` or `UserGroup`)",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22",
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/MemberType"
          }
        }
      },
      "UserGroupChannelMemberProps": {
        "type": "object",
        "properties": {
          "userCount": {
            "type": "integer",
            "readOnly": true,
            "description": "Total count of `User`s."
          },
          "permissionConflicts": {
            "description": "List of permission conflicts.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionConflict"
            },
            "readOnly": true
          }
        },
        "required": [
          "userCount"
        ]
      },
      "UserGroupChannelMember": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChannelMember"
          },
          {
            "$ref": "#/components/schemas/UserGroupChannelMemberProps"
          }
        ]
      },
      "ChannelMemberRole": {
        "type": "string",
        "enum": [
          "consumer",
          "content-creator",
          "channel-owner"
        ]
      },
      "ChannelMemberCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMember"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "UpdateChannelMemberRole": {
        "type": "object",
        "description": "Channel member role",
        "properties": {
          "role": {
            "$ref": "#/components/schemas/ChannelMemberRole"
          }
        }
      },
      "CreateChannelMember": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "`User` or `UserGroup` id\n",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
              },
              "type": {
                "$ref": "#/components/schemas/MemberType"
              }
            }
          },
          {
            "$ref": "#/components/schemas/UpdateChannelMemberRole"
          }
        ],
        "required": [
          "id",
          "type",
          "role"
        ]
      },
      "ChannelMemberResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/ChannelMember"
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "ChannelFeed": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
            "description": "RSS Feed URI to import",
            "example": "https://example.org/rssfeed"
          },
          "isMonitoringEnabled": {
            "default": true,
            "type": "boolean",
            "description": "Indicates if after initial import feed uri should be monitored for changes and new assets should be automatically imported."
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-12T23:20:50.52Z",
            "description": "Indicates start date-time from when assets should be imported from the feed, if provided."
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-12T23:20:50.52Z",
            "description": "Indicates end date-time from when assets should be imported from the feed, if provided."
          },
          "metadataLanguage": {
            "type": "string",
            "nullable": true,
            "example": "en-v2",
            "description": "Language used to generate the `Metadata` including the `Transcript`."
          }
        }
      },
      "UpdateChannelFeed": {
        "type": "object",
        "properties": {
          "isMonitoringEnabled": {
            "default": true,
            "type": "boolean",
            "description": "Indicates if after initial import feed uri should be monitored for changes and new assets should be automatically imported."
          },
          "startDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-12T23:20:50.52Z",
            "description": "Indicates start date-time from when assets should be imported from the feed, if provided"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true,
            "example": "2020-04-12T23:20:50.52Z",
            "description": "Indicates end date-time from when assets should be imported from the feed, if provided"
          }
        }
      },
      "StoryIds": {
        "type": "object",
        "properties": {
          "storyIds": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid",
              "description": "Id of the interactive `Story`",
              "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
            }
          }
        }
      },
      "ChatRequestMessage": {
        "type": "object",
        "discriminator": {
          "propertyName": "role",
          "mapping": {
            "user": "#/components/schemas/ChatUserRequestMessage",
            "assistant": "#/components/schemas/ChatAssistantRequestMessage"
          }
        },
        "properties": {
          "role": {
            "$ref": "#/components/schemas/ChatRole"
          }
        },
        "required": [
          "role"
        ]
      },
      "ChatUserContent": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "User's question.\n"
          }
        },
        "required": [
          "content"
        ]
      },
      "ChatUserRequestMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatRequestMessage"
          },
          {
            "$ref": "#/components/schemas/ChatUserContent",
            "example": [
              {
                "role": "user",
                "content": "What is the essence of this video?"
              },
              {
                "role": "user",
                "content": "Please highlight the main points of this video."
              }
            ]
          }
        ]
      },
      "ChatAssistantContent": {
        "type": "object",
        "properties": {
          "content": {
            "type": "string",
            "description": "Response provided by the assistant.\n"
          }
        },
        "required": [
          "content"
        ]
      },
      "ChatAssistantRequestMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatRequestMessage"
          },
          {
            "$ref": "#/components/schemas/ChatAssistantContent",
            "example": [
              {
                "role": "assistant",
                "content": "This video talks about the benefits of owning cats or dogs."
              },
              {
                "role": "assistant",
                "content": "I can't help you with life decisions."
              }
            ]
          }
        ]
      },
      "ChatRole": {
        "type": "string",
        "description": "The roles in a chat are the `user`, who asks questions, and the `assistant`, who responds with answers.",
        "enum": [
          "user",
          "assistant"
        ]
      },
      "ChatRequestMessageHistory": {
        "type": "array",
        "nullable": true,
        "description": "Lists the messages within the current chat and enables to interact with the LLM model in a conversational manner. The entries should be ordered from oldest to most recent, with the latest response last.\n\nThe message history will be automatically limited to comply with the model specific token limit.\nIt is recommended to limit the chat history to 16 entries (equivalent to 8 question-and-answer pairs).\n",
        "items": {
          "allOf": [
            {
              "$ref": "#/components/schemas/ChatRequestMessage"
            }
          ]
        }
      },
      "ChatAnswerMetadata": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "number",
            "format": "double",
            "example": 1.25,
            "description": "The timestamp (in seconds) indicating when this text appears in the source transcript.",
            "nullable": true
          },
          "page": {
            "type": "integer",
            "example": 5,
            "description": "The page number in the document where this text appears.",
            "nullable": true
          }
        },
        "oneOf": [
          {
            "required": [
              "startTime"
            ]
          },
          {
            "required": [
              "page"
            ]
          }
        ]
      },
      "ChatAnswerContext": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "An excerpt from a transcript that contributed to the answer.",
            "nullable": true
          },
          "metadata": {
            "description": "Additional metadata related to the `text` excerpt.",
            "$ref": "#/components/schemas/ChatAnswerMetadata"
          },
          "ref": {
            "type": "string",
            "description": "A reference to a specific chunk of the `Media`.",
            "nullable": true
          }
        }
      },
      "ChatMediaType": {
        "type": "string",
        "description": "Reference's `Media` type for question answering chat.",
        "nullable": false,
        "enum": [
          "audio",
          "document",
          "video"
        ]
      },
      "ChatContextProcessingStatusType": {
        "type": "string",
        "description": "Indicates the extent to which the `Media` asset was processed. A value of `'full'` means the entire asset was successfully processed, while `'partial'` indicates that only a portion of the asset was included.",
        "nullable": true,
        "enum": [
          "full",
          "partial"
        ]
      },
      "ChatAnswerGlobalContext": {
        "type": "object",
        "properties": {
          "parts": {
            "type": "array",
            "description": "A list of text sources used to generate the answer for a specific `Media` asset. Will be null when the Smart / Deep Dive mode is used.",
            "items": {
              "$ref": "#/components/schemas/ChatAnswerContext"
            },
            "nullable": true
          },
          "mediaId": {
            "type": "string",
            "format": "uuid",
            "description": "Reflects from which `Media` the information was extracted.",
            "nullable": false
          },
          "name": {
            "type": "string",
            "description": "The name of the `Media` asset.",
            "nullable": false
          },
          "type": {
            "$ref": "#/components/schemas/ChatMediaType"
          },
          "processingStatus": {
            "$ref": "#/components/schemas/ChatContextProcessingStatusType"
          },
          "partsIncluded": {
            "type": "integer",
            "description": "Actual number of parts included in the context.",
            "nullable": true
          },
          "partsTotal": {
            "type": "integer",
            "description": "Total number of parts that were available for this asset.",
            "nullable": true
          },
          "presentation": {
            "type": "object",
            "nullable": false,
            "properties": {
              "thumbnail": {
                "$ref": "#/components/schemas/Thumbnail"
              },
              "preview": {
                "nullable": true,
                "type": "object",
                "description": "A preview of the `Media` asset.",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "description": "The URL of the preview.",
                    "nullable": false
                  }
                }
              }
            }
          }
        }
      },
      "ChatMode": {
        "type": "string",
        "nullable": true,
        "description": "Determines the inference mode. 'Turbo' retrieves answers more quickly for most `Media` but may reduce precision due to limited context. If no mode is specified, it is determined automatically.",
        "enum": [
          "turbo",
          "smart",
          "auto",
          null
        ],
        "x-enum-varnames": [
          "Turbo",
          "Smart",
          "Auto"
        ]
      },
      "ChatRequestSettings": {
        "type": "object",
        "properties": {
          "llmProvider": {
            "type": "string",
            "description": "Specifies the LLM provider to use for the answer generation. The available options are defined in the system settings.",
            "example": "streamdiver/nitrox"
          },
          "mode": {
            "$ref": "#/components/schemas/ChatMode"
          },
          "inlineReferences": {
            "type": "boolean",
            "description": "Whether to include context references in the answer.",
            "default": true
          },
          "skipRetrieval": {
            "type": "boolean",
            "description": "Whether to skip the retrieval step.",
            "nullable": true,
            "default": false
          }
        }
      },
      "ChatRequestFilters": {
        "type": "object",
        "properties": {
          "channelIds": {
            "type": "array",
            "description": "A list of `Channel` ids allows filtering metadata retrieval to medias located only in specific `Channel`s. It helps narrow down the scope of metadata search.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RessourceId"
            }
          },
          "tags": {
            "type": "array",
            "description": "A list of tags enables filtering metadata retrieval to medias with specific tags, It allows precise selection of media based on predefined categorization or classification.",
            "nullable": true,
            "items": {
              "type": "string",
              "example": "Metadata-extraction",
              "description": "Asset tags for media retiever"
            }
          },
          "mediaIds": {
            "type": "array",
            "description": "A list of `Media` asset ids restricts metadata retrieval to specific, explicitly listed `Media` assets. It provides the most direct way to specify exactly which asset's metadata should be retrieved.",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/RessourceId"
            }
          },
          "speakers": {
            "type": "array",
            "description": "A list of speaker labels restricts metadata retrieval to specific, explicitly listed `speaker`s. Provides a direct way to specify which metadata should be used to answer the question.",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "types": {
            "type": "array",
            "description": "A list of asset types restricts metadata retrieval to specific, explicitly listed `Media` assets. It provides the most direct way to specify exactly which asset's metadata should be retrieved.",
            "nullable": true,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/ChatMediaType"
            }
          }
        }
      },
      "ChatQuestionGlobal": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "prompt": {
                "type": "string",
                "example": "List the 10 most important keywords with short explanations.",
                "description": "The user question which will be directed at all the `Media` assets the user has access to or restricted to the assets compatible with the filters applied."
              },
              "chatHistory": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ChatRequestMessageHistory"
                  }
                ],
                "deprecated": true
              },
              "messageHistory": {
                "$ref": "#/components/schemas/ChatRequestMessageHistory"
              },
              "context": {
                "type": "array",
                "description": "Lists the `Media` assets and their most relevant `parts` that have been used as sources to answer the user query.",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/ChatAnswerGlobalContext"
                }
              }
            }
          },
          {
            "$ref": "#/components/schemas/ChatRequestSettings"
          },
          {
            "$ref": "#/components/schemas/ChatRequestFilters"
          }
        ],
        "required": [
          "prompt"
        ]
      },
      "ChatAnswerGlobal": {
        "type": "object",
        "properties": {
          "answer": {
            "type": "string",
            "readOnly": true,
            "description": "The answer generated in response to the posted question.",
            "example": "The video is about a debate on environmental sustainability."
          },
          "context": {
            "type": "array",
            "description": "A list of text sources used to generate the answer.",
            "items": {
              "$ref": "#/components/schemas/ChatAnswerGlobalContext"
            }
          }
        }
      },
      "ChatAnswerGlobalStream": {
        "allOf": [
          {
            "type": "object",
            "discriminator": {
              "propertyName": "event",
              "mapping": {
                "message": "#/components/schemas/ChatAnswerGlobalStreamMessage",
                "search": "#/components/schemas/ChatAnswerGlobalStreamSearch",
                "history": "#/components/schemas/ChatAnswerGlobalStreamHistory",
                "error": "#/components/schemas/ChatAnswerGlobalStreamError"
              }
            },
            "properties": {
              "event": {
                "$ref": "#/components/schemas/ChatStreamEvent",
                "description": "Streaming event type that determines the data structure"
              }
            }
          }
        ]
      },
      "ChatAnswerGlobalStreamMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatAnswerGlobalStream"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The token content of the message"
                  }
                },
                "required": [
                  "token"
                ]
              }
            }
          }
        ]
      },
      "ChatNumberOfAssetsFiltered": {
        "type": "integer",
        "description": "The number of assets filtered by search query.",
        "nullable": true
      },
      "ChatRetrievalSkipped": {
        "type": "boolean",
        "description": "Indicates if the retrieval was skipped.",
        "nullable": true
      },
      "ChatAnswerGlobalStreamSearch": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatAnswerGlobalStream"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "context": {
                    "type": "array",
                    "description": "A list of text sources used to generate the answer",
                    "items": {
                      "$ref": "#/components/schemas/ChatAnswerGlobalContext"
                    }
                  },
                  "numberOfAssetsFiltered": {
                    "$ref": "#/components/schemas/ChatNumberOfAssetsFiltered"
                  },
                  "retrievalSkipped": {
                    "$ref": "#/components/schemas/ChatRetrievalSkipped"
                  }
                },
                "required": [
                  "context"
                ]
              }
            }
          }
        ]
      },
      "ChatAnswerGlobalStreamHistory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatAnswerGlobalStream"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "messageHistory": {
                    "type": "array",
                    "description": "A list of previous messages",
                    "items": {
                      "$ref": "#/components/schemas/ChatRequestMessage"
                    }
                  }
                },
                "required": [
                  "messageHistory"
                ]
              }
            }
          }
        ]
      },
      "ChatAnswerGlobalStreamError": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatAnswerGlobalStream"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "error": {
                    "type": "string",
                    "description": "The error message"
                  }
                },
                "required": [
                  "error"
                ]
              }
            }
          }
        ]
      },
      "ChatStreamEvent": {
        "type": "string",
        "enum": [
          "message",
          "search",
          "history",
          "error"
        ],
        "description": "Streaming event type for Chat stream responses"
      },
      "DesignSettingsType": {
        "type": "string",
        "enum": [
          "Channel",
          "Player",
          "DocxExport"
        ],
        "readOnly": true,
        "example": "Channel",
        "description": "Type of `Design` settings."
      },
      "DocxTextEntryStyling": {
        "type": "object",
        "properties": {
          "fontFamily": {
            "type": "string",
            "example": "Arial",
            "default": "Arial"
          },
          "fontSize": {
            "type": "number",
            "default": 12,
            "example": 12
          },
          "color": {
            "type": "string",
            "default": "#000000",
            "example": "#000000"
          },
          "bold": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "SpeakerNameCustomization": {
        "type": "string",
        "enum": [
          "None",
          "Alphabetical",
          "Numerical",
          "CustomLabel"
        ],
        "default": "None"
      },
      "DocxExportDesignData": {
        "type": "object",
        "properties": {
          "speakerLabelStyling": {
            "$ref": "#/components/schemas/DocxTextEntryStyling"
          },
          "textStyling": {
            "$ref": "#/components/schemas/DocxTextEntryStyling"
          },
          "speakerLabelSeparator": {
            "type": "string",
            "default": ": ",
            "example": ": ",
            "description": "String inserted after speaker label to separate it from transcirpt paragraph text"
          },
          "includeTimestamp": {
            "type": "boolean",
            "default": false
          },
          "speakerLabelLineBreak": {
            "type": "boolean",
            "default": false,
            "description": "Makes a line break after speaker label"
          },
          "paragraphLineBreak": {
            "type": "boolean",
            "default": true,
            "description": "Adds extra line break after paragraph text"
          },
          "speakerLabelCustomization": {
            "$ref": "#/components/schemas/SpeakerNameCustomization"
          },
          "customSpeakerLabel": {
            "type": "string",
            "nullable": true,
            "description": "Custom label used for speaker label when `speakerLabelCustomization=Custom`"
          }
        }
      },
      "DesignSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DesignSettingsBase"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "$ref": "#/components/schemas/DesignSettingsType"
              },
              "channelDesign": {
                "$ref": "#/components/schemas/ChannelDesign"
              },
              "playerDesign": {
                "$ref": "#/components/schemas/PlayerDesign"
              },
              "docxExportDesign": {
                "$ref": "#/components/schemas/DocxExportDesignData"
              }
            }
          }
        ]
      },
      "CreateDesignSettingsFromTemplate": {
        "type": "object",
        "properties": {
          "templateId": {
            "$ref": "#/components/schemas/RessourceId"
          }
        }
      },
      "CreateChannelDesignTemplate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/ChannelDesign"
          }
        }
      },
      "CreatePlayerDesignTemplate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/PlayerDesign"
          }
        }
      },
      "CreateDocxExportDesignSettings": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/DocxExportDesignData"
          }
        }
      },
      "QuizAttemptStatus": {
        "type": "string",
        "readOnly": true,
        "enum": [
          "started",
          "completed",
          "error",
          "timeout",
          "abandoned"
        ]
      },
      "QuizAttemptType": {
        "type": "string",
        "enum": [
          "real",
          "demo"
        ],
        "default": "real",
        "readOnly": true,
        "description": "When demo the quiz limits are not validated and the `attempt` is automatically removed every day."
      },
      "QuizAttempt": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "startedAtUtc": {
                "type": "string",
                "format": "date-time"
              },
              "finishedAtUtc": {
                "type": "string",
                "format": "date-time",
                "nullable": true
              },
              "status": {
                "$ref": "#/components/schemas/QuizAttemptStatus"
              },
              "type": {
                "$ref": "#/components/schemas/QuizAttemptType"
              }
            }
          }
        ]
      },
      "QuizAttemptSummaryOverview": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QuizAttempt"
          },
          {
            "type": "object",
            "properties": {
              "passed": {
                "type": "boolean",
                "description": "Determines wheter the `Quiz` attempt passed. Compares rate with passPercentage from `Quiz` settings.",
                "nullable": true
              },
              "rate": {
                "type": "number",
                "format": "double",
                "minimum": 0,
                "description": "Percentage of gained points.",
                "nullable": true
              },
              "score": {
                "type": "integer",
                "minimum": 0,
                "nullable": true
              },
              "totalScoreToGain": {
                "type": "integer",
                "minimum": 0,
                "description": "Maximum available score user can have.",
                "nullable": true
              },
              "attemptNumber": {
                "type": "integer",
                "description": "Number of users current `Quiz` attempt on the `Quiz`."
              },
              "attemptCountLimit": {
                "type": "integer",
                "nullable": true,
                "description": "Maximum attempts to be taken on current `Quiz`."
              }
            }
          }
        ]
      },
      "QuizOverview": {
        "type": "object",
        "description": "Summarizes the last attempt of the `Stories Quiz` with a report. If empty, the `Story` is a `Stories Quiz` without attempts.",
        "readOnly": true,
        "nullable": true,
        "properties": {
          "isMandatory": {
            "type": "boolean",
            "readOnly": true,
            "example": false
          },
          "isOpenToTake": {
            "type": "boolean",
            "readOnly": true,
            "example": true,
            "description": "Informs whether User can take an attempt in `quiz`."
          },
          "isSuccess": {
            "type": "boolean",
            "nullable": true,
            "readOnly": true,
            "example": true,
            "description": "Attempt was finished with success status."
          },
          "isFailure": {
            "type": "boolean",
            "nullable": true,
            "readOnly": true,
            "example": true,
            "description": "Attempt was finished with failed status."
          },
          "latestAttemptUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "If set, it signals when the latest `attempt` was started. If not set, it signals that no `attempt` has been started yet.",
            "example": "2024-10-15T21:10:50.52Z",
            "nullable": true
          },
          "dueUntilUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "If set, it signals that the `Story` is available for a limited time and when that deadline is. If unset, there is no availability limitation.",
            "example": "2024-12-12T23:20:30.50Z",
            "nullable": true
          },
          "report": {
            "readOnly": true,
            "description": "A compact summary of the latest finished quiz `attempt`, or `null` if no quiz `attempt` has been finished yet. Use [Get an attempt summary](#tag/Stories-Quiz/operation/getAttempt) to get the full summary.",
            "allOf": [
              {
                "$ref": "#/components/schemas/QuizAttemptSummaryOverview"
              }
            ]
          }
        }
      },
      "Story": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Story zum Onboarding neuer Mitarbeiter",
                "maxLength": 255
              },
              "description": {
                "type": "string",
                "example": "Diese Story führt sie begleitet Sie durch onboarding Prozess."
              },
              "permissions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Permission"
                }
              },
              "quiz": {
                "$ref": "#/components/schemas/QuizOverview"
              },
              "channels": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimal"
                }
              }
            }
          }
        ]
      },
      "StoryCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Story"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateStory": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Story zum Onboarding neuer Mitarbeiter",
                "maxLength": 255
              },
              "description": {
                "type": "string",
                "example": "Diese Story begleitet Sie durch onboarding Prozess."
              },
              "backwardsNavigationEnabled": {
                "type": "boolean",
                "description": "flag which allows backwards navigation in an interactive stories, if active, user is allowed to go back to last interaction",
                "example": true
              }
            }
          }
        ]
      },
      "Overlay": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "text": {
                "type": "string",
                "example": "Image of user max.mustermann"
              },
              "sceneId": {
                "type": "string",
                "format": "uuid",
                "readOnly": true,
                "description": "id of the Scene to which the overlay belongs",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "start": {
                "type": "number",
                "format": "double",
                "example": 5000.223,
                "description": "start of interaction in milliseconds"
              },
              "end": {
                "type": "number",
                "format": "double",
                "example": 20000.012213,
                "description": "end of interaction in milliseconds"
              },
              "css": {
                "type": "string",
                "example": "some json string with custom css",
                "description": "custom css field to style the overlay"
              },
              "url": {
                "type": "string",
                "example": "www.streamdiver.com",
                "description": "linkt to some website or url of an image resource"
              },
              "type": {
                "type": "string",
                "enum": [
                  "text",
                  "link",
                  "image"
                ]
              }
            },
            "required": [
              "text"
            ]
          }
        ]
      },
      "InteractionMinimal": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "example": "Did you like this video?"
              },
              "description": {
                "type": "string",
                "example": "a question directed to a user who watches the interactive story"
              },
              "sceneId": {
                "type": "string",
                "format": "uuid",
                "readOnly": true,
                "description": "Id of the `scene` to which the `Interaction` belongs.",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "start": {
                "type": "number",
                "format": "double",
                "example": 5000.223,
                "description": "Start of `Interaction` in milliseconds."
              },
              "end": {
                "type": "number",
                "format": "double",
                "example": 20000.012213,
                "description": "End of `Interaction` in milliseconds."
              },
              "required": {
                "type": "boolean",
                "example": false,
                "description": "Indicates if the `Interaction` of the user is required or optional."
              },
              "css": {
                "type": "string",
                "example": "some json string with custom css",
                "description": "Custom css field to style the `Interaction`."
              },
              "questionSetId": {
                "type": "string",
                "format": "uuid",
                "nullable": true,
                "readOnly": false,
                "description": "Optional id of linked `questionSet`.",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
              }
            },
            "required": [
              "title"
            ]
          }
        ]
      },
      "Option": {
        "description": "An option of an interaction",
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "text": {
                "type": "string",
                "example": "Answer 1"
              },
              "sceneId": {
                "type": "string",
                "format": "uuid",
                "nullable": true,
                "readOnly": false,
                "description": "optional id of an option of an scene of the interactive story. If user goes for this option, he jumps to this entry",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "interactionId": {
                "type": "string",
                "format": "uuid",
                "nullable": true,
                "readOnly": false,
                "description": "optional id of an interaction of a Scene of the interactive story. If user goes for this option, he jumps to this interaction",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "overlayId": {
                "type": "string",
                "format": "uuid",
                "nullable": true,
                "readOnly": false,
                "description": "optional id of an overlay of a Scene of the interactive story. If user goes for this option, he jumps to this overlay",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "type": {
                "type": "string",
                "enum": [
                  "continue",
                  "redirect"
                ]
              }
            },
            "required": [
              "text"
            ]
          }
        ]
      },
      "Interaction": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/InteractionMinimal"
          },
          {
            "type": "object",
            "properties": {
              "options": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Option"
                }
              }
            },
            "required": [
              "title"
            ]
          }
        ]
      },
      "Scene": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Wie schalte ich mein Notebook ein?",
                "maxLength": 255
              },
              "description": {
                "type": "string",
                "example": "In diesem Abschnitt wird Ihnen erklärt wie Sie ihr notebook einschalten"
              },
              "sortNumber": {
                "type": "integer",
                "description": "used in order to enable sorting",
                "example": 1
              },
              "storyId": {
                "type": "string",
                "format": "uuid",
                "readOnly": true,
                "description": "id of the Story to which the entry belongs",
                "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
              },
              "section": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MediaSectionMinimal"
                  }
                ]
              },
              "overlays": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Overlay"
                }
              },
              "interactions": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Interaction"
                }
              }
            },
            "required": [
              "name"
            ]
          }
        ]
      },
      "StoryExtended": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/Story"
          },
          {
            "type": "object",
            "properties": {
              "scenes": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/Scene"
                }
              },
              "backwardsNavigationEnabled": {
                "type": "boolean",
                "description": "Flag which allows backwards navigation in an `Interactive Stories`. If active, user is allowed to go back to last `interaction`.\n",
                "example": true
              }
            }
          }
        ]
      },
      "StoryResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/StoryExtended"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateScene": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Wie schalte ich mein Notebook ein?",
            "maxLength": 255
          },
          "description": {
            "type": "string",
            "example": "In diesem Abschnitt wird Ihnen erklärt wie Sie ihr notebook einschalten"
          },
          "sortNumber": {
            "type": "integer",
            "description": "used in order to enable sorting",
            "example": 1
          },
          "sectionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "id of the MediaSection to which the Scene refers",
            "example": "6f3f4931-125f-484d-965a-17af4eb7c8ec"
          }
        },
        "required": [
          "name"
        ]
      },
      "SceneResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Scene"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "InteractionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/InteractionMinimal"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "OptionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Option"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "OverlayResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Overlay"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "StoryMember": {
        "type": "object",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "user": "#/components/schemas/UserStoryMember",
            "usergroup": "#/components/schemas/UserGroupStoryMember"
          }
        },
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "description": "User or user group id",
            "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
          },
          "audit": {
            "$ref": "#/components/schemas/Audit"
          },
          "displayName": {
            "type": "string",
            "description": "Current user/user group's name",
            "example": "Group 4711",
            "readOnly": true
          },
          "type": {
            "$ref": "#/components/schemas/MemberType"
          },
          "role": {
            "$ref": "#/components/schemas/ChannelMemberRole"
          },
          "permissions": {
            "description": "The member's permissions.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "readOnly": true
          },
          "quiz": {
            "$ref": "#/components/schemas/QuizOverview"
          }
        },
        "required": [
          "id",
          "displayName",
          "type",
          "role",
          "permissions"
        ]
      },
      "UserStoryMember": {
        "allOf": [
          {
            "$ref": "#/components/schemas/StoryMember"
          },
          {
            "type": "object",
            "properties": {
              "pending": {
                "type": "boolean",
                "description": "Determines whether it is a pending user or an already registered one."
              }
            },
            "required": [
              "pending"
            ]
          }
        ]
      },
      "UserGroupStoryMember": {
        "allOf": [
          {
            "$ref": "#/components/schemas/StoryMember"
          },
          {
            "$ref": "#/components/schemas/UserGroupChannelMemberProps"
          }
        ]
      },
      "StoryMemberCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/StoryMember"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "Tenant": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObjectSimple"
          },
          {
            "type": "object",
            "properties": {
              "shortcode": {
                "type": "string",
                "maxLength": 32
              },
              "name": {
                "type": "string",
                "maxLength": 255
              }
            },
            "required": [
              "name",
              "shortcode"
            ]
          }
        ]
      },
      "TenantResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Tenant"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "SelectableCulture": {
        "type": "object",
        "properties": {
          "selectableCultureCode": {
            "type": "string",
            "example": "de"
          },
          "displayName": {
            "type": "string",
            "example": "Deutsch",
            "description": "localized displayname of the culture"
          }
        }
      },
      "SelectableCulturesCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SelectableCulture"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "DefaultUserRole": {
        "type": "string",
        "description": "Role for newly created users.",
        "enum": [
          "Collaborator",
          "User",
          "Consumer"
        ],
        "default": "User",
        "x-default-value": "User",
        "x-has-default": true
      },
      "CenterSystemSettings": {
        "type": "object",
        "properties": {
          "enablePublishing": {
            "type": "boolean",
            "example": false
          },
          "enableSso": {
            "type": "boolean",
            "example": false
          }
        }
      },
      "LlmType": {
        "type": "string",
        "enum": [
          "internal",
          "external"
        ],
        "description": "Specify the type of Large Language Model, which can be either 'internal' for providers hosted within the system or 'external' for those hosted outside.",
        "example": "internal"
      },
      "Llm": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Large Language Model provider ID.",
            "example": "streamdiver/nitrox"
          },
          "name": {
            "type": "string",
            "description": "The human-readable name of the Large Language Model provider.",
            "example": "Streamdiver Nitrox"
          },
          "type": {
            "$ref": "#/components/schemas/LlmType"
          }
        }
      },
      "LlmSettings": {
        "type": "object",
        "properties": {
          "available": {
            "description": "Specifies all available Large Language Models in the system.",
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/Llm"
            }
          },
          "enabled": {
            "description": "A list of Large Language Model IDs that are enabled. If `null` all available models are considered enabled.",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "example": [
              "streamdiver/nitrox",
              "openai/gpt-3.5-turbo"
            ]
          }
        }
      },
      "SystemSettings": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CenterSystemSettings"
          },
          {
            "type": "object",
            "properties": {
              "maxUploadCount": {
                "type": "integer",
                "nullable": true,
                "example": 1000,
                "description": "Maximum available media assets that can be uploaded on the tenant"
              },
              "uploadStorageLimit": {
                "type": "integer",
                "nullable": true,
                "example": 2056,
                "description": "Maximum available storage size for all media assets. Defined in GB"
              },
              "singleUploadLimit": {
                "type": "integer",
                "nullable": true,
                "example": 1024,
                "description": "Limit defining max media asset size per single upload. Defined in MB"
              },
              "downloadSizeLimit": {
                "type": "integer",
                "nullable": true,
                "example": 2056,
                "description": "Allowed summarized download size of assets and renditions. Defined in GB"
              },
              "enableLiveStreaming": {
                "type": "boolean",
                "example": false,
                "description": "Indicates if LiveStreaming is enabled for the tenant"
              },
              "maxLiveApplications": {
                "type": "integer",
                "nullable": true,
                "example": 5,
                "description": "Maximum number of live applications"
              },
              "streamingInstanceId": {
                "type": "integer",
                "nullable": true,
                "example": 1,
                "description": "Id of Streaming Server"
              },
              "srtPortRangeStartBackup": {
                "type": "integer",
                "nullable": true,
                "example": 1
              },
              "srtPortRangeStart": {
                "type": "integer",
                "nullable": true,
                "example": 1
              },
              "enableReducedLiveLatency": {
                "type": "boolean",
                "example": false
              },
              "enableInteractiveStory": {
                "type": "boolean",
                "example": false
              },
              "webhookPerUserLimit": {
                "type": "integer",
                "nullable": true,
                "example": 20,
                "default": 5,
                "description": "Maximum number of webhooks per user"
              },
              "enableKeyframesEmbeddings": {
                "type": "boolean",
                "default": false,
                "example": true,
                "description": "Determines if image embeddings will be generated for `Media` type video"
              },
              "llmProviders": {
                "type": "array",
                "description": "Available LLM providers.",
                "deprecated": true,
                "items": {
                  "type": "string"
                }
              },
              "fileAttachmentSizeLimit": {
                "type": "integer",
                "readOnly": true,
                "description": "The maximum allowed size (in bytes) for an individual media-asset file attachment."
              },
              "fileAttachmentAllowedExtensions": {
                "type": "string",
                "readOnly": true,
                "description": "Allowed file extensions for an individual media-asset file attachment."
              },
              "thumbnailSizeLimit": {
                "type": "integer",
                "readOnly": true,
                "description": "The maximum allowed size (in bytes) for thumbnails."
              },
              "assetAllowedExtensions": {
                "type": "string",
                "readOnly": true,
                "description": "Allowed file extensions for `Media` assets."
              },
              "largeLanguageModels": {
                "$ref": "#/components/schemas/LlmSettings"
              },
              "enableFlows": {
                "type": "boolean",
                "default": false,
                "example": true,
                "description": "Indicates if the Flows feature is enabled for the tenant."
              },
              "storageId": {
                "type": "string",
                "example": "default",
                "description": "Identifier of the object storage",
                "default": "default"
              },
              "oParlApiBaseUrl": {
                "type": "string",
                "nullable": true,
                "example": "https://sessionnet.service365.at/",
                "description": "API base url of a public OParl interface"
              },
              "oParlTenantId": {
                "type": "string",
                "nullable": true,
                "example": "27533",
                "description": "Tenant specific Id of a tenant in the OParl system"
              },
              "deleteSourceAfterIngest": {
                "type": "boolean",
                "default": false,
                "example": true,
                "description": "When true, the original uploaded source file is deleted from storage once video or audio ingest completes successfully. Has no effect on document or image assets.\n"
              },
              "ingestPresetKeys": {
                "type": "array",
                "nullable": true,
                "items": {
                  "type": "string"
                },
                "example": [
                  "720p_output",
                  "360p_output",
                  "low_output"
                ],
                "description": "Restricts video and audio ingest to the specified preset keys for this tenant. Null or empty means all available presets are used (system default)."
              }
            }
          }
        ]
      },
      "StorySettings": {
        "type": "object",
        "properties": {
          "consentText": {
            "type": "string",
            "nullable": true,
            "maxLength": 2048
          }
        }
      },
      "TenantSettings": {
        "type": "object",
        "properties": {
          "defaultCulture": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "de",
              "en"
            ],
            "example": "en",
            "description": "Default culture (localization)."
          },
          "selectableCultures": {
            "readOnly": true,
            "type": "array",
            "description": "Available cultures (localization).",
            "items": {
              "type": "string",
              "enum": [
                "de",
                "en"
              ],
              "example": "en"
            }
          },
          "portalTitle": {
            "type": "string",
            "description": "The default title for the Streamdiver *Public Portal*."
          },
          "matomoSiteId": {
            "readOnly": true,
            "type": "integer",
            "format": "int32",
            "example": 5,
            "description": "Related site identifier for tracking via Matomo. Automatically generated by the `Tenant` creation job."
          },
          "matomoUserTrackingEnabled": {
            "readOnly": true,
            "type": "boolean",
            "example": false,
            "description": "Indicates if user tracking is enabled using Matomo."
          },
          "playlistProtectionEnabled": {
            "type": "boolean",
            "example": false,
            "description": "Indicates if playlists are secured by a token."
          },
          "speakerIdentificationEnabled": {
            "type": "boolean",
            "example": false,
            "description": "Indicates if speaker identification should be done in transcription step of `Metadata` extraction."
          },
          "enableAdBanner": {
            "type": "boolean",
            "example": false,
            "description": "Enables the ad banner on the Streamdiver *Public Portal* page."
          },
          "adBannerUrl": {
            "type": "string",
            "example": "https://ad.example.com",
            "description": "The URL for the banner link (in case `enableAdBanner` is `true`)."
          },
          "transcriptionLanguage": {
            "type": "string",
            "description": "Language for transcription which is used if a media asset is uploaded. For possible values check transcription metadata preset configuration.",
            "example": "de"
          },
          "downloadDefaultExpirationSeconds": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "default": 172800,
            "description": "Default expiration for download links, in seconds."
          },
          "customTrackingCode": {
            "type": "string",
            "example": "<link rel=\"preload\" href=\"https://data-9fcd0b641d.streamdiver.com/iomm/latest/manager/base/es6/bundle.js\" as=\"script\" id=\"IOMmBundle\" /><link rel=\"preload\" href=\"https://data-9fcd0b641d.streamdiver.com/iomm/latest/bootstrap/loader.js\" as=\"script\" /><script type=\"text/javascript\" src=\"//data-9fcd0b641d.streamdiver.com/iomm/latest/bootstrap/loader.js\"></script><script type=\"text/javascript\">some script;</script>",
            "description": "If set, the custom tracking code will be injected into the JavaScript player widget."
          },
          "autoSubtitles": {
            "type": "boolean",
            "example": true,
            "description": "If enabled, uploaded `Media` assets will get `Subtitles` automatically assigned based on the selection `languageModel` for transcription."
          },
          "channelDownloadEnabled": {
            "type": "boolean",
            "example": true,
            "description": "If disabled, new `Channels` will inherit this setting and `downloadEnabled` will be `false`."
          },
          "uploadDuplicateCheckEnabled": {
            "type": "boolean",
            "example": true,
            "description": "If active, there are duplicate checks on `fileName` and `fileHash` for new `Media` asset uploads."
          },
          "publicPortalSharingEnabled": {
            "type": "boolean",
            "example": true,
            "description": "If disabled, you can not share the `Channel` and its `Media Assets` from the PublicPortal."
          },
          "defaultUserRole": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DefaultUserRole"
              }
            ]
          },
          "systemSettings": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/SystemSettings"
              }
            ]
          },
          "enabledLargeLanguageModels": {
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            },
            "example": [
              "streamdiver/nitrox"
            ],
            "description": "List of Large Language Models enabled for the tenant. When set to null, it inherits value from `systemSettings.largeLanguageModels.enabled`.\n"
          },
          "storySettings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StorySettings"
              }
            ]
          },
          "widgetSuiteAllowList": {
            "description": "A list of allowed referrer domains or IP addresses for the widget suite.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CenterDesign": {
        "type": "object",
        "properties": {
          "primaryColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "secondaryColor": {
            "type": "string",
            "example": "#1f57a6"
          },
          "backgroundColorOne": {
            "type": "string",
            "example": "#1f57a6"
          },
          "backgroundColorTwo": {
            "type": "string",
            "example": "#1f57a6"
          },
          "fontUrl": {
            "type": "string",
            "description": "font of the center, font/woff",
            "readOnly": true
          },
          "logoUrl": {
            "type": "string",
            "description": "logo of the center, image/svg+xml",
            "readOnly": true
          },
          "mainImageUrl": {
            "type": "string",
            "description": "main image of the center, image/png",
            "readOnly": true
          },
          "faviconUrl": {
            "type": "string",
            "description": "icon of the center, image/x-icon",
            "readOnly": true
          },
          "headerFontColor": {
            "type": "string",
            "example": "#000"
          },
          "customCss": {
            "type": "string",
            "example": ".mdl-typography--display-1-color-contrast {opacity: 1;}",
            "description": "If set, the custom css will be applied to the Center."
          },
          "loginFormTitle": {
            "type": "string",
            "example": "Welcome!",
            "description": "If set, the title will be applied to login from on Center login page"
          },
          "ssoButtonTitle": {
            "type": "string",
            "example": "Single sign on",
            "description": "If set, the title will be applied to SSO button on Center login page"
          },
          "publicPortalButtonTitle": {
            "type": "string",
            "example": "Check our public content",
            "description": "If set, the title will be applied to Public Portal button on Center login page"
          }
        }
      },
      "TenantDesigns": {
        "type": "object",
        "properties": {
          "channelDesign": {
            "$ref": "#/components/schemas/ChannelDesign"
          },
          "playerDesign": {
            "$ref": "#/components/schemas/PlayerDesign"
          },
          "centerDesign": {
            "$ref": "#/components/schemas/CenterDesign"
          }
        }
      },
      "TenantStatistics": {
        "type": "object",
        "properties": {
          "totalUploadCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 1204,
            "description": "The number of uploaded media assets"
          },
          "totalStorageUsage": {
            "readOnly": true,
            "nullable": true,
            "type": "number",
            "example": 25.6,
            "description": "The size of the uploaded media assets in gibibytes (GiB)"
          },
          "totalMediaDuration": {
            "readOnly": true,
            "nullable": true,
            "type": "number",
            "format": "double",
            "example": 225,
            "description": "The duration of the uploaded media assets in hours"
          },
          "totalMediaAssetCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 1204,
            "description": "The number of stored media assets"
          },
          "totalAdminUsersCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 5,
            "description": "The number of users with administrator permissions (independent of the date query)"
          },
          "totalUsersCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 10,
            "description": "The number of users (independent of the date query)"
          },
          "privateChannelsCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 25,
            "description": "The number of currently existing private channels (independent of the date query)"
          },
          "publicChannelsCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 25,
            "description": "The number of currently existing public channels (independent of the date query)"
          },
          "tagsCount": {
            "readOnly": true,
            "nullable": true,
            "type": "integer",
            "example": 20,
            "description": "The number of currently existing tags (independent of the date query)"
          },
          "totalMediaTimeWatched": {
            "type": "number",
            "format": "double",
            "readOnly": true,
            "nullable": true,
            "example": 1231,
            "description": "The media asset playout time across all users (authenticated and public) in hours"
          },
          "totalMediaDurationProcessed": {
            "readOnly": true,
            "nullable": true,
            "type": "number",
            "format": "double",
            "example": 225,
            "description": "The duration of ingested and processed media assets in hours, including deleted assets (independent of the date query)"
          }
        }
      },
      "TenantStatisticsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TenantStatistics"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "Text": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "example": "Some text string"
          }
        },
        "required": [
          "text"
        ]
      },
      "TenantTextResource": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObjectSimple"
          },
          {
            "$ref": "#/components/schemas/Text"
          },
          {
            "type": "object",
            "properties": {
              "languageCode": {
                "type": "string",
                "example": "de"
              },
              "type": {
                "type": "string",
                "description": "text resource type",
                "enum": [
                  "imprint",
                  "privacy",
                  "terms"
                ],
                "example": "imprint"
              }
            }
          }
        ]
      },
      "TenantTextResourceResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/TenantTextResource"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "MetadataPreset": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Language Model DE"
              },
              "description": {
                "type": "string",
                "example": "Create metadata record with a transcript using presets for language DE."
              },
              "dependentOnPresetIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true,
                  "readOnly": true,
                  "description": "id of the preset on which this preset depends on, if any",
                  "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
                }
              },
              "configurationSchema": {
                "type": "string",
                "description": "JSON schema for preset configuration, which describes possible configuration when extracting metadata",
                "example": "{\n  \"type\": \"object\",\n  \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n  \"required\": [\n    \"language\"\n  ],\n  \"properties\": {\n    \"language\": {\n      \"type\": \"string\",\n      \"oneOf\": [\n        {\n          \"enum\": [\n            \"de-v2\",\n            \"en-v2\"\n          ]\n        }\n      ]\n    }\n  }\n}\n"
              }
            }
          }
        ]
      },
      "MetadataPresetCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/MetadataPreset"
                }
              }
            }
          }
        ]
      },
      "TranscriptLanguageModel": {
        "type": "object",
        "properties": {
          "transcriptLanguageModel": {
            "type": "string",
            "example": "de-v2"
          },
          "displayName": {
            "type": "string",
            "example": "Deutsch",
            "description": "localized displayname of the language model"
          }
        }
      },
      "TranscriptLanguageModelCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TranscriptLanguageModel"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "UpdateTranscriptLanguageModels": {
        "type": "object",
        "properties": {
          "languageModels": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Language model code, eg. de-v2, translate-en-v2...",
              "example": [
                "en-v2",
                "de-v2"
              ]
            }
          }
        }
      },
      "SubtitleLanguage": {
        "type": "object",
        "properties": {
          "languageCode": {
            "type": "string",
            "example": "de"
          },
          "displayName": {
            "type": "string",
            "example": "Deutsch",
            "description": "localized displayname of the language"
          }
        }
      },
      "SubtitleLanguageCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SubtitleLanguage"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "RecommendationFeedback": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "mediaAssetId": {
                "description": "Media asset for which feedback is provided",
                "$ref": "#/components/schemas/RessourceId"
              },
              "mediaSectionId": {
                "description": "Media section for which feedback is provided",
                "$ref": "#/components/schemas/RessourceId"
              },
              "referrerMediaAssetId": {
                "description": "Previously viewed media asset",
                "$ref": "#/components/schemas/RessourceId"
              },
              "referrerMediaSectionId": {
                "description": "Previously viewed media section",
                "$ref": "#/components/schemas/RessourceId"
              },
              "referrerPage": {
                "description": "Previously viewed page",
                "type": "string",
                "example": "https://tenant.streamdiver.com/center/media"
              },
              "timecode": {
                "type": "number",
                "format": "double",
                "description": "Player timecode when feedback is given in seconds",
                "example": 50.123
              },
              "value": {
                "type": "string",
                "description": "Feedback value (rating)",
                "enum": [
                  "like",
                  "dislike"
                ],
                "example": "like"
              }
            },
            "required": [
              "mediaAssetId",
              "value"
            ]
          }
        ]
      },
      "RecommendationFeedbackCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RecommendationFeedback"
                }
              }
            }
          }
        ]
      },
      "RecommendationFeedbackResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/RecommendationFeedback"
                  }
                ]
              }
            }
          }
        ]
      },
      "HistoryResultView": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "userId": {
                "type": "string",
                "format": "uuid",
                "readOnly": true,
                "description": "user id",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
              },
              "sessionId": {
                "type": "integer",
                "format": "int64",
                "example": 4711
              },
              "mediaAssetId": {
                "type": "string",
                "format": "uuid",
                "readOnly": true,
                "description": "id of the media asset",
                "example": "09a40e8f-f561-4274-9337-9f148ec8ef22"
              },
              "watchedAtUtc": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "moment where the asset was watched",
                "example": "2020-09-16T23:20:50.52Z"
              },
              "watchDuration": {
                "type": "number",
                "description": "View duration",
                "example": 50
              },
              "totalDuration": {
                "type": "number",
                "description": "Total media duration",
                "example": 912
              }
            }
          }
        ]
      },
      "HistoryResultResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "history": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/HistoryResultView"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "SessionId": {
        "type": "number",
        "example": 4711,
        "description": "The view session id."
      },
      "UpdateChat": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "isFeatured": {
            "type": "boolean",
            "description": "Flag used to promote `chat` in the listing. If true, it will be displayed at the top of the list.\n"
          }
        }
      },
      "ChatMessage": {
        "type": "object",
        "discriminator": {
          "propertyName": "role",
          "mapping": {
            "user": "#/components/schemas/ChatUserMessage",
            "assistant": "#/components/schemas/ChatAssistantMessage"
          }
        },
        "properties": {
          "role": {
            "$ref": "#/components/schemas/ChatRole"
          },
          "customData": {
            "description": "Custom data object. Stored as-is and intended for client-side use.\n"
          }
        },
        "required": [
          "role"
        ]
      },
      "ChatPromptConfig": {
        "type": "object",
        "properties": {
          "filters": {
            "$ref": "#/components/schemas/ChatRequestFilters"
          },
          "settings": {
            "$ref": "#/components/schemas/ChatRequestSettings"
          },
          "context": {
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ChatAnswerGlobalContext"
            }
          }
        }
      },
      "ChatUserMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatMessage"
          },
          {
            "$ref": "#/components/schemas/ChatUserContent"
          },
          {
            "type": "object",
            "properties": {
              "config": {
                "$ref": "#/components/schemas/ChatPromptConfig"
              }
            }
          }
        ]
      },
      "ChatAssistantMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatMessage"
          },
          {
            "$ref": "#/components/schemas/ChatAssistantContent"
          },
          {
            "type": "object",
            "properties": {
              "context": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChatAnswerGlobalContext"
                }
              },
              "numberOfAssetsFiltered": {
                "$ref": "#/components/schemas/ChatNumberOfAssetsFiltered"
              },
              "retrievalSkipped": {
                "$ref": "#/components/schemas/ChatRetrievalSkipped"
              }
            }
          }
        ]
      },
      "ChatData": {
        "type": "object",
        "description": "Contains the messages exchanged in a `chat`, along with their metadata. The size is limited to 1MB.",
        "properties": {
          "messageHistory": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ChatMessage"
                }
              ]
            }
          },
          "customData": {
            "description": "Custom data object. Stored as-is and intended for client-side use.\n"
          }
        }
      },
      "Chat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/UpdateChat"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/ChatData"
              }
            }
          }
        ]
      },
      "UpdateLivestream": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the live stream.",
            "type": "string",
            "example": "Live - Vortrag Dr. Klöbner",
            "maxLength": 255
          },
          "description": {
            "description": "Optional description of the live stream.",
            "type": "string",
            "example": "Der Vortrag Dr. Klöbner - Lorem ipsum dolor sit."
          },
          "withBackup": {
            "type": "boolean",
            "description": "Configures whether an additional live stream input should be created as a backup, along with a separate HLS playlist URL for playback.",
            "default": false
          },
          "recording": {
            "type": "boolean",
            "description": "Configures whether the live stream should be recorded for later VOD conversion after [publishing](#tag/Livestreams/operation/publishLivestream).",
            "default": false
          },
          "timeshift": {
            "type": "boolean",
            "description": "Configures whether viewers can seek (rewind or fast-forward) during the live broadcast.\nPausing is always possible and not affected by this setting.\nTimeshift requires `recording=true`. If recording is disabled, any attempt to enable timeshift\nwill be ignored and `timeshift` will be set to `false`.\n",
            "default": false
          }
        }
      },
      "LivestreamBase": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/UpdateLivestream"
          },
          {
            "type": "object",
            "properties": {
              "thumbnail": {
                "description": "A thumbnail to show with the live stream.",
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Thumbnail"
                  }
                ]
              },
              "channels": {
                "readOnly": true,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ChannelMinimalPermissions"
                }
              },
              "status": {
                "description": "The status of the given livestream.",
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LivestreamStatus"
                  }
                ]
              }
            }
          }
        ],
        "required": [
          "id",
          "audit",
          "name",
          "description",
          "withBackup",
          "recording",
          "timeshift",
          "channels",
          "status"
        ]
      },
      "LivePlayout": {
        "type": "object",
        "properties": {
          "mimeType": {
            "type": "string",
            "readOnly": true,
            "example": "application/x-mpegURL"
          },
          "source": {
            "type": "string",
            "example": "https://cdn.streamdiver.com/live-tenant/_definst_/amlst:2021/03/d2f3f6a0-a186-4156-b784-248de16e9e2a/playlist.m3u8"
          },
          "type": {
            "type": "string",
            "enum": [
              "embed",
              "videostream"
            ],
            "example": "videostream"
          },
          "primary": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "required": [
          "mimeType"
        ]
      },
      "LivestreamHistory": {
        "type": "object",
        "description": "default livestream history object",
        "properties": {
          "startedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "stoppedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true
          }
        },
        "required": [
          "startedAt",
          "stoppedAt",
          "publishedAt"
        ]
      },
      "Livestream": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "$ref": "#/components/schemas/LivestreamBase"
          },
          {
            "type": "object",
            "properties": {
              "source": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LivestreamSource"
                  }
                ]
              },
              "inputs": {
                "description": "The ingest endpoint URLs available. The last part of the URL path is the stream key.",
                "readOnly": true,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LivestreamTarget"
                }
              },
              "playouts": {
                "description": "The HLS playlist URLs available.",
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/LivePlayout"
                }
              },
              "history": {
                "description": "A history of status changes related with the given livestream.",
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LivestreamHistory"
                  }
                ]
              },
              "mediaAssetId": {
                "$ref": "#/components/schemas/DefaultId"
              }
            }
          }
        ],
        "required": [
          "id",
          "audit",
          "source",
          "inputs",
          "playouts",
          "history",
          "mediaAssetId"
        ]
      },
      "LivestreamCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Livestream"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateLivestream": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the live stream.",
            "type": "string",
            "example": "Live - Vortrag Dr. Klöbner",
            "maxLength": 255
          },
          "description": {
            "description": "Optional description of the live stream.",
            "type": "string",
            "example": "Der Vortrag Dr. Klöbner - Lorem ipsum dolor sit."
          },
          "source": {
            "readOnly": false,
            "allOf": [
              {
                "$ref": "#/components/schemas/LivestreamSource"
              }
            ]
          },
          "withBackup": {
            "type": "boolean",
            "description": "Configures whether an additional live stream input should be created as a backup, along with a separate HLS playlist URL for playback.",
            "default": false
          },
          "recording": {
            "type": "boolean",
            "description": "Configures whether the live stream should be recorded for later VOD conversion after [publishing](#tag/Livestreams/operation/publishLivestream).",
            "default": true
          },
          "timeshift": {
            "type": "boolean",
            "description": "Configures whether viewers can seek during the live broadcast.\nPausing is always possible and not affected by this setting.\nTimeshift requires `recording=true`. If recording is disabled, any attempt to enable timeshift\nwill be ignored and `timeshift` will be set to `false`.\n",
            "default": true
          },
          "channelIds": {
            "description": "An optional list of `Channel` IDs to assign this live stream and the live asset to. If not provided, target is the private user channel.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DefaultId",
              "readOnly": false
            }
          }
        },
        "required": [
          "name",
          "source",
          "withBackup",
          "recording",
          "timeshift"
        ]
      },
      "LivestreamResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Livestream"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "LivestreamStatisticsAggregated": {
        "type": "object",
        "properties": {
          "createdAtUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the statistics were sampled",
            "example": "2023-09-16T23:20:50.52Z"
          },
          "hlsConnections": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "Number of HLS connections"
          },
          "rtmpConnections": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of RTMP connections"
          }
        },
        "required": [
          "createdAtUtc",
          "hlsConnections",
          "rtmpConnections"
        ]
      },
      "LivestreamStatisticsOverview": {
        "type": "object",
        "description": "Last statistics record for a given livestream. For the primary streaming instance and the secondary (the optional backup).",
        "properties": {
          "sum": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LivestreamStatisticsAggregated"
              }
            ],
            "readOnly": true
          },
          "primary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LivestreamStatisticsAggregated"
              }
            ],
            "readOnly": true
          },
          "secondary": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LivestreamStatisticsAggregated"
              }
            ],
            "readOnly": true
          }
        }
      },
      "LivestreamStatisticsOverviewResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/LivestreamStatisticsOverview"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "LivestreamStatistics": {
        "type": "object",
        "properties": {
          "createdAtUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The timestamp when the statistics were sampled",
            "example": "2023-09-16T23:20:50.52Z"
          },
          "hlsConnections": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 3,
            "description": "Number of HLS connections"
          },
          "rtmpConnections": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 1,
            "description": "Number of RTMP connections"
          },
          "networkBytesIn": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 166444613,
            "description": "Network traffic (bytes incoming total)"
          },
          "networkBytesOut": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 55263494,
            "description": "Network throughput (bytes outgoing total)"
          },
          "networkBytesInRate": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 508573,
            "description": "Network throughput (bytes incoming per second)"
          },
          "networkBytesOutRate": {
            "readOnly": true,
            "type": "integer",
            "format": "int64",
            "example": 1222290,
            "description": "Network throughput (bytes outgoing per second)"
          }
        },
        "required": [
          "createdAtUtc",
          "hlsConnections",
          "rtmpConnections",
          "networkBytesIn",
          "networkBytesOut",
          "networkBytesInRate",
          "networkBytesOutRate"
        ]
      },
      "LivestreamStatisticsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/LivestreamStatistics"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "Meeting": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "meetingId": {
                "type": "string",
                "format": "uri",
                "description": "Ressource identifier of the `Meeting`",
                "example": "https://oparl.example.org/meetings/12345"
              },
              "name": {
                "type": "string",
                "example": "Gemeinderatssitzung 17",
                "maxLength": 255
              },
              "startedAtUtc": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "Moment when the meeting started",
                "example": "2025-09-16T23:20:50.52Z"
              },
              "endedAtUtc": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "Moment when the meeting started",
                "example": "2025-09-18T23:20:50.52Z"
              }
            }
          }
        ]
      },
      "MeetingsResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/Meeting"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "AgendaItem": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uri",
                "description": "Ressource identifier of the `AgendaItem`",
                "example": "https://oparl.example.org/meetings/12345/agendaItems/1"
              },
              "name": {
                "type": "string",
                "example": "Eröffnung der Sitzung",
                "maxLength": 255
              },
              "number": {
                "type": "string",
                "example": 1,
                "maxLength": 255
              },
              "createdAtUtc": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "readOnly": true,
                "description": "Moment when the meeting started",
                "example": "2025-09-16T23:20:50.52Z"
              }
            }
          }
        ]
      },
      "MeetingDetailed": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Meeting"
          },
          {
            "type": "object",
            "properties": {
              "agendaItems": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "$ref": "#/components/schemas/AgendaItem"
                }
              }
            }
          }
        ]
      },
      "MeetingResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "readOnly": true,
                "allOf": [
                  {
                    "$ref": "#/components/schemas/MeetingDetailed"
                  }
                ]
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "WebhookEvent": {
        "type": "string",
        "description": "The event used to trigger a webhook request.",
        "enum": [
          "ping",
          "media.created",
          "media.updated",
          "media.deleted",
          "media.restored"
        ]
      },
      "Webhook": {
        "allOf": [
          {
            "$ref": "#/components/schemas/DefaultObject"
          },
          {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "The target URL for the webhook request to be issued by the system.",
                "example": "https://example.org/my-webhook-target"
              },
              "enabled": {
                "description": "Determines whether requests should be sent to the URL or not.",
                "type": "boolean"
              },
              "events": {
                "description": "Determines what events trigger this webhook.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WebhookEvent"
                },
                "minItems": 1,
                "example": [
                  "media.updated"
                ]
              },
              "headers": {
                "type": "object",
                "additionalProperties": {
                  "type": "string"
                },
                "description": "A key/value list of HTTP headers to include with each webhook request, e.g., for authorization."
              }
            }
          }
        ]
      },
      "WebhookCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Webhook"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "CreateWebhook": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The target URL for the webhook request to be issued by the system.",
            "example": "https://example.org/my-webhook-target"
          },
          "enabled": {
            "description": "Determines whether requests should be sent to the URL or not.",
            "type": "boolean"
          },
          "events": {
            "description": "Determines what [events](#tag/Webhooks/operation/webhookEventEmit) like `media.updated` etc. trigger this webhook. It is possible to use wildcards `*` (all events) or `media.*` (all media events).",
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "example": [
              "media.updated"
            ]
          },
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "A key/value list of HTTP headers to include with each webhook request, e.g., for authorization."
          }
        },
        "required": [
          "url",
          "events"
        ]
      },
      "WebhookResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/Webhook"
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "WebhookDeliveryStatus": {
        "type": "string",
        "readOnly": true,
        "enum": [
          "success",
          "failed",
          "retry"
        ]
      },
      "WebhookDeliveryBasic": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/RessourceId"
          },
          "webhookId": {
            "$ref": "#/components/schemas/RessourceId"
          },
          "sentAtUtc": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "Webhook emit timestamp.\n"
          },
          "event": {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          "status": {
            "$ref": "#/components/schemas/WebhookDeliveryStatus"
          }
        }
      },
      "WebhookDeliveryCollectionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/WebhookDeliveryBasic"
                }
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "Header": {
        "type": "object",
        "description": "HTTP Header",
        "properties": {
          "key": {
            "type": "string",
            "example": "Cache"
          },
          "value": {
            "type": "string",
            "example": "no-cache"
          }
        }
      },
      "WebhookDelivery": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookDeliveryBasic"
          },
          {
            "type": "object",
            "properties": {
              "code": {
                "type": "integer",
                "readOnly": true,
                "example": 200,
                "description": "Response code from webhook delivery url.\n"
              },
              "responseHeaders": {
                "type": "array",
                "description": "Response headers received from webhook delivery url.\n",
                "items": {
                  "$ref": "#/components/schemas/Header"
                }
              },
              "responseBody": {
                "type": "string",
                "readOnly": true,
                "maxLength": 1000,
                "description": "Response body returned from webhook delivery url.\n"
              }
            }
          }
        ]
      },
      "WebhookDeliveryResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/WebhookDelivery"
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "WebhookPayload": {
        "type": "object",
        "discriminator": {
          "propertyName": "event",
          "mapping": {
            "media.created": "#/components/schemas/MediaWebhook",
            "media.updated": "#/components/schemas/MediaUpdatedWebhook",
            "media.deleted": "#/components/schemas/MediaDeletedWebhook",
            "media.restored": "#/components/schemas/MediaWebhook",
            "ping": "#/components/schemas/PingWebhook"
          }
        },
        "properties": {
          "id": {
            "$ref": "#/components/schemas/RessourceId"
          },
          "webhookId": {
            "type": "string",
            "format": "uuid",
            "description": "Identifier of configured `webhook`"
          },
          "event": {
            "$ref": "#/components/schemas/WebhookEvent"
          },
          "triggeredByUserId": {
            "type": "string",
            "format": "uuid"
          },
          "triggeredByUsername": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "MediaWebhookData": {
        "type": "object",
        "properties": {
          "object": {
            "$ref": "#/components/schemas/BaseMedia"
          }
        }
      },
      "MediaWebhook": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookPayload"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MediaWebhookData"
              }
            }
          }
        ]
      },
      "MediaUpdatedWebhookData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaWebhookData"
          },
          {
            "type": "object",
            "properties": {
              "properties": {
                "type": "array",
                "description": "Properties updated on `Media`.",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "MediaUpdatedWebhook": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookPayload"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MediaUpdatedWebhookData"
              }
            }
          }
        ]
      },
      "MediaDeletedWebhookData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaWebhookData"
          },
          {
            "type": "object",
            "properties": {
              "permanent": {
                "type": "boolean"
              }
            }
          }
        ]
      },
      "MediaDeletedWebhook": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookPayload"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/MediaDeletedWebhookData"
              }
            }
          }
        ]
      },
      "PingWebhook": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WebhookPayload"
          }
        ]
      }
    },
    "responses": {
      "MediaCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          },
          "X-Video-Count": {
            "$ref": "#/components/headers/xVideoCount"
          },
          "X-Audio-Count": {
            "$ref": "#/components/headers/xAudioCount"
          },
          "X-Image-Count": {
            "$ref": "#/components/headers/xImageCount"
          },
          "X-Document-Count": {
            "$ref": "#/components/headers/xDocumentCount"
          },
          "X-Livestream-Count": {
            "$ref": "#/components/headers/xLiveStreamCount"
          },
          "X-SoftDeleted-Count": {
            "$ref": "#/components/headers/xSoftDeletedCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaCollectionResponse"
            }
          }
        }
      },
      "ErrorUnauthorized": {
        "description": "Unauthorized access.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "ErrorForbidden": {
        "description": "Access forbidden.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "DeletedObject": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DeletedObjectResponse"
            }
          }
        }
      },
      "ErrorNotFound": {
        "description": "Given resource was not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "MediaTagItemCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaTagItemCollectionResponse"
            }
          }
        }
      },
      "OkObject": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OkObjectResponse"
            }
          }
        }
      },
      "MediaDetailed": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaDetailedResponse"
            }
          }
        }
      },
      "ErrorConflict": {
        "description": "Conflict.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "Error": {
        "description": "Error Response",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Error"
                }
              ]
            }
          }
        }
      },
      "Thumbnail": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ThumbnailResponse"
            }
          }
        }
      },
      "ErrorValidation": {
        "description": "Invalid data provided.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "ShareLink": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ShareLinkResponse"
            }
          }
        }
      },
      "CommentCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CommentCollectionResponse"
            }
          }
        }
      },
      "Comment": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CommentResponse"
            }
          }
        }
      },
      "PermissionCollection": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/PermissionCollectionResponse"
            }
          }
        }
      },
      "MediaAssetEvents": {
        "description": "Media events response using Server-Sent Events (SSE).",
        "content": {
          "text/event-stream": {
            "schema": {
              "$ref": "#/components/schemas/MediaEventsResponse"
            },
            "examples": {
              "mediaCreatedExample": {
                "summary": "Example of a `mediachapter.deleted` event",
                "value": "event: mediachapter.deleted\ndata: {\"id\": \"c5782cf1-a3f1-4fab-82e6-03164db1162e\"}\n"
              }
            }
          }
        }
      },
      "MediaSectionCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaSectionCollectionResponse"
            }
          }
        }
      },
      "MediaSection": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaSectionResponse"
            }
          }
        }
      },
      "SplitMediaSection": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaSectionSplitResponse"
            }
          }
        }
      },
      "MediaChapterCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaChapterCollectionResponse"
            }
          }
        }
      },
      "MediaChapter": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaChapterResponse"
            }
          }
        }
      },
      "Entry": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EntryResponse"
            }
          }
        }
      },
      "MetadataCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetadataCollectionResponse"
            }
          }
        }
      },
      "ErrorOnUpdate": {
        "description": "Error during validation of request body",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorOnUpdate"
            }
          }
        }
      },
      "TranscriptCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TranscriptCollectionResponse"
            }
          }
        }
      },
      "MetadataRecordTranscript": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetadataRecordTranscriptResponse"
            }
          }
        }
      },
      "ErrorUnprocessableEntity": {
        "description": "Unable to process entity.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "ActivatedObject": {
        "description": "Given resource was successfully activated."
      },
      "SubtitleAssigned": {
        "description": "Transcription was successfully assigned as a Subtitle of a media asset"
      },
      "TranscriptDownloadResponse": {
        "description": "Transcript download"
      },
      "SubtitleVtt": {
        "description": "Subtitle in VTT format.",
        "content": {
          "text/vtt": {
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "Subtitle": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SubtitleResponse"
            }
          }
        }
      },
      "MediaSeoStructuredData": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaSeoStructuredData"
            }
          }
        }
      },
      "FileAttachmentCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/FileAttachmentCollectionResponse"
            }
          }
        }
      },
      "CreateFileAttachment": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateFileAttachmentResponse"
            }
          }
        }
      },
      "FileAttachment": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/FileAttachmentResponse"
            }
          }
        }
      },
      "SearchResult": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SearchResultResponse"
            }
          }
        }
      },
      "SearchSemanticMediaResultResponse": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SearchSemanticMediaResultResponse"
            }
          }
        }
      },
      "RecommendationResult": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RecommendationResultResponse"
            }
          }
        }
      },
      "SearchRanges": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SearchRangesResponse"
            }
          }
        }
      },
      "SearchPresetCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SearchPresetCollectionResponse"
            }
          }
        }
      },
      "SearchPreset": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SearchPresetResponse"
            }
          }
        }
      },
      "UploadCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UploadCollectionResponse"
            }
          }
        }
      },
      "Upload": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UploadResponse"
            }
          }
        }
      },
      "FilesImportCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/FilesImportCollectionResponse"
            }
          }
        }
      },
      "FilesImport": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/FilesImportResponse"
            }
          }
        }
      },
      "DownloadCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DownloadCollectionResponse"
            }
          }
        }
      },
      "Download": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DownloadResponse"
            }
          }
        }
      },
      "TagCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TagCollectionResponse"
            }
          }
        }
      },
      "Tag": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TagResponse"
            }
          }
        }
      },
      "ChannelCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          },
          "X-Group-Count": {
            "$ref": "#/components/headers/xGroupCount"
          },
          "X-User-Count": {
            "$ref": "#/components/headers/xUserCount"
          },
          "X-Interactive-Count": {
            "$ref": "#/components/headers/xInteractiveCount"
          },
          "X-Public-Count": {
            "$ref": "#/components/headers/xPublicCount"
          },
          "X-Private-Count": {
            "$ref": "#/components/headers/xPrivateCount"
          },
          "X-Shared-Count": {
            "$ref": "#/components/headers/xSharedCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelCollectionResponse"
            }
          }
        }
      },
      "Channel": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelResponse"
            }
          }
        }
      },
      "ChannelMemberCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelMemberCollectionResponse"
            }
          }
        }
      },
      "ChannelMember": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelMemberResponse"
            }
          }
        }
      },
      "ChannelFeed": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelFeed"
            }
          }
        }
      },
      "ChatAnswerGlobal": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/BaseResponse"
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/ChatAnswerGlobal"
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "ChatAnswerGlobalStream": {
        "description": "Successful streaming response using Server-Sent Events (SSE).",
        "content": {
          "text/event-stream": {
            "schema": {
              "$ref": "#/components/schemas/ChatAnswerGlobalStream"
            }
          }
        }
      },
      "DesignSettings": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/DesignSettings"
              }
            }
          }
        }
      },
      "DesignSettingsResource": {
        "description": "Design Setting resource",
        "content": {
          "application/octet-stream": {
            "schema": {
              "type": "string"
            }
          }
        }
      },
      "StoryCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StoryCollectionResponse"
            }
          }
        }
      },
      "Story": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StoryResponse"
            }
          }
        }
      },
      "Scene": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SceneResponse"
            }
          }
        }
      },
      "Interaction": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/InteractionResponse"
            }
          }
        }
      },
      "Option": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OptionResponse"
            }
          }
        }
      },
      "Overlay": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/OverlayResponse"
            }
          }
        }
      },
      "StoryMemberCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StoryMemberCollectionResponse"
            }
          }
        }
      },
      "Tenant": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantResponse"
            }
          }
        }
      },
      "SelectableCulturesCollection": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SelectableCulturesCollectionResponse"
            }
          }
        }
      },
      "TenantSettings": {
        "description": "Tenant Settings",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantSettings"
            }
          }
        }
      },
      "UpdatedObject": {
        "description": "Object was successfully updated"
      },
      "TenantDesigns": {
        "description": "Tenant Designgs",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantDesigns"
            }
          }
        }
      },
      "TenantStatistics": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantStatisticsResponse"
            }
          }
        }
      },
      "TenantResource": {
        "description": "tenant resource",
        "content": {
          "application/octet-stream": {
            "schema": {
              "type": "string",
              "format": "binary"
            }
          }
        }
      },
      "TenantTextResource": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantTextResourceResponse"
            }
          }
        }
      },
      "MetadataPresetCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetadataPresetCollectionResponse"
            }
          }
        }
      },
      "TranscriptLanguageModelCollection": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TranscriptLanguageModelCollectionResponse"
            }
          }
        }
      },
      "SubtitleLanguageCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SubtitleLanguageCollectionResponse"
            }
          }
        }
      },
      "RecommendationFeedbackCollection": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RecommendationFeedbackCollectionResponse"
            }
          }
        }
      },
      "RecommendationFeedback": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RecommendationFeedbackResponse"
            }
          }
        }
      },
      "HistoryResult": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/HistoryResultResponse"
            }
          }
        }
      },
      "ChatsCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/BaseResponse"
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Chat"
                      }
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "Chat": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/BaseResponse"
                },
                {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Chat"
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "LivestreamCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LivestreamCollectionResponse"
            }
          }
        }
      },
      "Livestream": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LivestreamResponse"
            }
          }
        }
      },
      "LivestreamStatisticsOverview": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LivestreamStatisticsOverviewResponse"
            }
          }
        }
      },
      "LivestreamStatistics": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/LivestreamStatisticsResponse"
            }
          }
        }
      },
      "Meetings": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MeetingsResponse"
            }
          }
        }
      },
      "Meeting": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MeetingResponse"
            }
          }
        }
      },
      "WebhookCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/WebhookCollectionResponse"
            }
          }
        }
      },
      "Webhook": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/WebhookResponse"
            }
          }
        }
      },
      "WebhookDeliveryCollection": {
        "description": "Successful response.",
        "headers": {
          "X-Total-Count": {
            "$ref": "#/components/headers/xTotalCount"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/WebhookDeliveryCollectionResponse"
            }
          }
        }
      },
      "WebhookDelivery": {
        "description": "Successful response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/WebhookDeliveryResponse"
            }
          }
        }
      }
    },
    "requestBodies": {
      "MediaAssetIds": {
        "required": true,
        "description": "List of MediaAssetIds",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaAssetIds"
            }
          }
        }
      },
      "BulkAssignTags": {
        "required": true,
        "description": "List of Media Asset Ids and Tags",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BulkAssignTags"
            }
          }
        }
      },
      "UpdateMediaAsset": {
        "description": "Update `Media` asset payload",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateMediaAsset"
            }
          }
        }
      },
      "ThumbnailNew": {
        "required": true,
        "content": {
          "multipart/form-data": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "Comment": {
        "required": true,
        "description": "Comment to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Comment"
            }
          }
        }
      },
      "MediaSection": {
        "required": true,
        "description": "Media Section",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MediaSection"
            }
          }
        }
      },
      "UpdateMediaSection": {
        "description": "Update media section",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateMediaSection"
            }
          }
        }
      },
      "SplitMediaSection": {
        "description": "Update media section",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/SplitMediaSection"
            }
          }
        }
      },
      "CreateMediaChapter": {
        "required": true,
        "description": "MediaChapter to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateMediaChapter"
            }
          }
        }
      },
      "ImportMediaChapter": {
        "required": true,
        "description": "MediaChapter to import",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ImportMediaChapter"
            }
          }
        }
      },
      "UpdateMediaChapter": {
        "required": true,
        "description": "MediaChapter to update",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateMediaChapter"
            }
          }
        }
      },
      "CreateEntry": {
        "required": true,
        "description": "Entry to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateEntry"
            }
          }
        }
      },
      "BulkUpdateEntries": {
        "required": true,
        "description": "List of `Entry` Ids to update",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/BulkUpdateEntries"
            }
          }
        }
      },
      "ExtractMetadata": {
        "required": true,
        "description": "Configuration for extraction.  Use the endpoint [List metadata presets](#tag/Tenants/operation/getMetadataPresets) to fetch presets with their configuration and dependencies.\n",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ExtractMetadata"
            }
          }
        }
      },
      "MetadataRecordTranscriptNew": {
        "required": true,
        "description": "Part of a `Transcript` represented by a list of paragraphs.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetadataRecordTranscript"
            }
          }
        }
      },
      "MetadataRecordTranscriptTimeAlignment": {
        "required": true,
        "description": "Metadata Transcript Time Alignment part",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetadataTimeAlignmentUpdateData"
            }
          }
        }
      },
      "UpdateFullTranscriptRequest": {
        "required": true,
        "description": "The full transcript, represented as a list of paragraphs, to replace the existing one.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "paragraphs": {
                  "type": "array",
                  "description": "A list of paragraphs that constitutes the entire transcript.",
                  "items": {
                    "$ref": "#/components/schemas/UpdateFullTranscriptParagraph"
                  }
                }
              }
            }
          }
        }
      },
      "MetadataTranscriptSpeakerInfo": {
        "required": true,
        "description": "information to update a speaker in a transcript",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MetadataTranscriptSpeakerInfo"
            }
          }
        }
      },
      "AssignTranscriptAsSubtitles": {
        "description": "Assign transcript as subtitles",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AssignTranscriptAsSubtitles"
            }
          }
        }
      },
      "ChangeSubtitleRequest": {
        "required": true,
        "description": "Subtitle text file with SRT or WebVTT format.",
        "content": {
          "multipart/form-data": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "CreateFileAttachment": {
        "required": true,
        "description": "File attachment to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateFileAttachment"
            }
          }
        }
      },
      "UpdateFileAttachment": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateFileAttachment"
            }
          }
        }
      },
      "CreateSearchPreset": {
        "description": "Create new search preset",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateSearchPreset"
            }
          }
        }
      },
      "UpdateSearchPreset": {
        "description": "Update a search preset",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateSearchPreset"
            }
          }
        }
      },
      "Upload": {
        "required": true,
        "description": "Upload",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateUpload"
            }
          }
        }
      },
      "MultipartUploadParts": {
        "description": "List of MultipartUploadParts (partNumber + eTag) for S3MultipartPresigned uploads using presigned URLs.",
        "required": false,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MultipartUploadParts"
            }
          },
          "application/x-www-form-urlencoded": {
            "schema": {
              "$ref": "#/components/schemas/MultipartUploadParts"
            }
          }
        }
      },
      "CreateFilesImport": {
        "description": "Create file import from external source",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateFilesImport"
            }
          }
        }
      },
      "DownloadNew": {
        "required": true,
        "description": "Download",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/DownloadNew"
            }
          }
        }
      },
      "CreateTagRequest": {
        "required": true,
        "description": "The `Tag` name must not contain special characters or whitespaces.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Tag"
            }
          }
        }
      },
      "CreateChannel": {
        "description": "Create channel",
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateChannel"
            }
          }
        }
      },
      "UpdateChannel": {
        "description": "Update channel",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateChannel"
            }
          }
        }
      },
      "UpdateChannelVisibility": {
        "description": "New channel's visibility",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateChannelVisibility"
            }
          }
        }
      },
      "CreateChannelMembers": {
        "required": true,
        "description": "Channel members to add",
        "content": {
          "application/json": {
            "schema": {
              "items": {
                "$ref": "#/components/schemas/CreateChannelMember"
              },
              "type": "array"
            }
          }
        }
      },
      "UpdateChannelMemberRole": {
        "required": true,
        "description": "Channel member to update",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateChannelMemberRole"
            }
          }
        }
      },
      "UpdateChannelImportFeed": {
        "required": true,
        "description": "Updates on feed import",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateChannelFeed"
            }
          }
        }
      },
      "ChannelImportFeed": {
        "required": true,
        "description": "Feed to import",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChannelFeed"
            }
          }
        }
      },
      "StoryIds": {
        "required": true,
        "description": "List of StoryIds",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StoryIds"
            }
          }
        }
      },
      "ChatQuestionGlobal": {
        "required": true,
        "description": "A question related to a media asset",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChatQuestionGlobal"
            }
          }
        }
      },
      "CreateDesignSettingsFromTemplate": {
        "required": true,
        "description": "Comment to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateDesignSettingsFromTemplate"
            }
          }
        }
      },
      "CreateChannelDesignTemplate": {
        "required": true,
        "description": "Comment to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateChannelDesignTemplate"
            }
          }
        }
      },
      "CreatePlayerDesignTemplate": {
        "required": true,
        "description": "Comment to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreatePlayerDesignTemplate"
            }
          }
        }
      },
      "CreateDocxExportDesignSettings": {
        "required": true,
        "description": "Comment to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateDocxExportDesignSettings"
            }
          }
        }
      },
      "UploadDesignSettingResource": {
        "required": true,
        "description": "Design setting ressource file. For accepted MIME Types refer to type, otherwise content is not validated.",
        "content": {
          "multipart/form-data": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "CreateStory": {
        "required": true,
        "description": "Story to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateStory"
            }
          }
        }
      },
      "UpdateStory": {
        "required": true,
        "description": "Story to update",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateStory"
            }
          }
        }
      },
      "CreateScene": {
        "required": true,
        "description": "Scene to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateScene"
            }
          }
        }
      },
      "Interaction": {
        "required": true,
        "description": "Interaction",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Interaction"
            }
          }
        }
      },
      "Option": {
        "required": true,
        "description": "Option",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Option"
            }
          }
        }
      },
      "Overlay": {
        "required": true,
        "description": "Overlay",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Overlay"
            }
          }
        }
      },
      "TenantSettings": {
        "required": true,
        "description": "Settings",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantSettings"
            }
          }
        }
      },
      "TenantDesigns": {
        "required": true,
        "description": "Designs",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/TenantDesigns"
            }
          }
        }
      },
      "UploadTenantResource": {
        "required": true,
        "description": "Tenant ressource file. For accepted MIME Types refer to type, otherwise content is not validated.",
        "content": {
          "multipart/form-data": {
            "schema": {
              "type": "object",
              "properties": {
                "file": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      },
      "Text": {
        "required": true,
        "description": "Text",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Text"
            }
          }
        }
      },
      "UpdateTransciptLanguageModels": {
        "required": true,
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateTranscriptLanguageModels"
            }
          }
        }
      },
      "CreateRecommendationFeedbackRequest": {
        "required": true,
        "description": "Recommendation feedback to add",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/RecommendationFeedback"
            }
          }
        }
      },
      "CreateChat": {
        "required": true,
        "description": "Chat history body",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Chat"
            }
          }
        }
      },
      "UpdateChat": {
        "required": true,
        "description": "Chat history body",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateChat"
            }
          }
        }
      },
      "UpdateMessageHistory": {
        "required": true,
        "description": "Chat history body",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ChatData"
            }
          }
        }
      },
      "CreateLivestream": {
        "required": true,
        "description": "Livestream",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateLivestream"
            }
          }
        }
      },
      "UpdateLivestream": {
        "description": "Update `Livestream` payload",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/UpdateLivestream"
            }
          }
        }
      },
      "CreateWebhook": {
        "description": "Create new webhook",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/CreateWebhook"
            }
          }
        }
      },
      "WebhookPayload": {
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/WebhookPayload"
                }
              ]
            }
          }
        }
      }
    },
    "securitySchemes": {
      "oauth2": {
        "type": "oauth2",
        "description": "For more information see [Authentication](https://developer.streamdiver.com/docs/getting-started/authentication)",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "https://sso.streamdiver.com/realms/{tenantShortcode}/protocol/openid-connect/token",
            "scopes": {
              "ViewChannel": "Read access to a Channel. Allows viewing MediaAssets which are in that channel",
              "ViewMetadata": "Read access on Indexer and TranscriptEditor",
              "ViewAnalytics": "Read access to Channel analytics",
              "ViewStatistics": "Read access to tenant statistics",
              "DownloadFromChannel": "Create and perform Download for content of a channel",
              "CreateContent": "Perform CRUD operations on MediaAssets",
              "CreateMetadata": "Perform CRUD operations on Metadata",
              "ManageSharingOptions": "Update channel, feature channel and assets within",
              "ManagerMemberAssignments": "Assignment of Roles to Users/UserGroups with respect to a channel",
              "MakeChannelPublic": "set a channel to public",
              "ManageChannel": "Manage channel resources, eg. channel design",
              "ManageUsers": "Perform CRUD operations on Users",
              "ManageTenant": "Perform CRUD operations on TenantSettings",
              "ManageTenantContent": "View and edit all content of tenant, without respect to channel membership and also for private user channels",
              "ManageLiveStreams": "Create and manage livestreams"
            }
          }
        }
      }
    }
  }
}