{"openapi":"3.1.0","info":{"title":"MediaCopilot API","description":"The MediaCopilot API provides a robust set of endpoints to manage and process media assets, enabling seamless integration into your workflows. **Authentication is required for all API requests**. Each request must include a `Bearer` token with the API Key in the `Authorization` header","version":"1.0.0"},"paths":{"/v1/assets":{"post":{"summary":"Creates an asset","description":"Creates a new asset in the database in the current user's tenant.","operationId":"_add_asset_v1_assets_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAssetPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAssetResponse"}}}},"409":{"description":"When you try to send a non-default template_id","content":{"application/json":{"example":{"detail":"The template ID isn't the default one"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Returns all assets","description":"Returns all the assets of the current user's tenant, paged in base of the query parameters 'page' and 'items'; together with links to the first, previous, last and next pages, and the total count of elements.\n\n    Enhanced filtering options:\n    - entities: Free text entities of the asset (comma-separated)\n    - sentiment: Sentiment analysis (Negative, Neutral, Positive) (comma-separated)\n    - classification: EBU 2007 classification hierarchy (comma-separated)\n    - speakers: Speakers in the asset (comma-separated)\n    - language_id: Original language of the asset","operationId":"_list_assets_v1_assets_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":16,"title":"Items"}},{"name":"collection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Collection Id"}},{"name":"entities","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entities"}},{"name":"sentiment","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sentiment"}},{"name":"classification","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Classification"}},{"name":"speakers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speakers"}},{"name":"language_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Language Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAssetsResponse"}}}},"404":{"description":"If the page number specified is not valid","content":{"application/json":{"example":{"detail":"Page number not found"}}}},"422":{"description":"When you try to invalid sentiment parameter","content":{"application/json":{"example":{"detail":"Invalid sentiment values: {positive, neutral, NEUTRAL, NegatiVe}"}}}}}}},"/v1/assets/{asset_id}":{"get":{"summary":"Returns an asset","description":"Returns an asset information.","operationId":"_get_asset_v1_assets__asset_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAssetResponse"}}}},"404":{"description":"When the asset doesn't exists in the user's tenant","content":{"application/json":{"example":{"detail":"Asset ID not found: 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Deletes an asset","description":"Deletes an asset and all its related information and objects","operationId":"_delete_asset_v1_assets__asset_id__delete","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"If the given asset doesn't exists","content":{"application/json":{"example":{"detail":"Asset ID not found: 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/external/assets/{external_id}":{"get":{"summary":"Returns an asset by its external ID","description":"Returns an asset by its external ID","operationId":"_get_asset_by_external_id_v1_external_assets__external_id__get","parameters":[{"name":"external_id","in":"path","required":true,"schema":{"type":"string","title":"External Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAssetByExternalIdResponse"}}}},"404":{"description":"When there is no asset with the specified external ID in the user's tenant","content":{"application/json":{"example":{"detail":"Asset with external ID 'Example name' not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/start_upload":{"post":{"summary":"Creates upload URLs for a multipart upload","description":"Starts a multipart upload, by generating N upload URLs for N parts","operationId":"_start_upload_v1_assets__asset_id__start_upload_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartUploadPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartUploadResponse"}}}},"404":{"description":"When the asset doesn't exist in the user's tenant","content":{"application/json":{"example":{"detail":"Asset ID not found: 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/finish_upload":{"post":{"summary":"Finish a multipart upload","description":"Starts a finish upload job.\nFirst, finishes a multipart upload, consolidating the different parts in a single file.\nThen, starts an asynchronous job for the asset processing.\n\nThis call should be performed once the client has uploaded all the parts, sending the\nvalue of the \"ETag\" header of each part in the same order that the URLs were provided.\n\nUntil this API call is made the asset will not be available to be processed.","operationId":"_finish_upload_v1_assets__asset_id__finish_upload_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinishUploadPayload"}}}},"responses":{"204":{"description":"Successful Response"},"404":{"description":"When the asset doesn't exist in the user's tenant","content":{"application/json":{"example":{"detail":"Asset ID not found: 2"}}}},"409":{"description":"If the asset doesn't have an upload previously started","content":{"application/json":{"example":{"detail":"The asset ID 2 does not have an upload in progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/documents":{"get":{"summary":"Returns the documents of an asset","description":"Retrieve the documents related to an asset.","operationId":"_list_asset_documents_v1_assets__asset_id__documents_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAssetDocumentsResponse"}}}},"404":{"description":"If the asset doesn't exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 00000000-0000-0000-0000-000000000001"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/translation_jobs":{"post":{"summary":"Start a translation job","description":"Adds and starts running a translation job.\nThe job will translate an asset to the specified languages.","operationId":"_add_translation_job_v1_assets__asset_id__translation_jobs_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTranslationJobPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTranslationJobResponse"}}}},"404":{"description":"When either the asset ID or one of the language IDs specified do not exist","content":{"application/json":{"example":{"detail":"Asset not found"}}}},"409":{"description":"When the target languages list is empty","content":{"application/json":{"example":{"detail":"Language IDs list can't be empty"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/translation_jobs/{job_id}":{"get":{"summary":"Get a translation job","description":"Returns a translation job by its ID","operationId":"_get_translation_job_v1_assets__asset_id__translation_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTranslationJobResponse"}}}},"404":{"description":"When there is no translation job with the specified ID","content":{"application/json":{"example":{"detail":"Job not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/process_voice_over_jobs":{"post":{"summary":"Add a new process voice over job","description":"Creates a new job to process the voice over track for a given asset in a target language.\n\nA process voice over job is an asynchronous job to generate the voice over audio track of the given asset for the requested `language_id`, using the TTS voice selected for each speaker present in the transcription (`speakers_config`) and the given volume levels.\n\nThe requested language must have a translation in the asset, support voice over, and it cannot be the original language of the asset. `speakers_config` must contain exactly one voice for every speaker present in the transcription, and every voice referenced in it must exist.\n\nAn asset can only have a single process voice over job running at once, trying to add a new job to an asset that have one running will result in an error.","operationId":"_add_process_voice_over_job_v1_assets__asset_id__process_voice_over_jobs_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProcessVoiceOverJobPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProcessVoiceOverJobResponse"}}}},"409":{"description":"When you try to add a new process voice over job to an asset that already have one running","content":{"application/json":{"example":{"detail":"There is already a process voice over job running for asset ID 10"}}}},"400":{"description":"If the asset, the language or any selected voice does not exist, or the language cannot be used for voice over","content":{"application/json":{"example":{"detail":"Asset ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Return the process voice over jobs for a single asset","description":"Return the process voice over jobs associated to this asset.\n\nThis view is paginated.","operationId":"_list_process_voice_over_jobs_v1_assets__asset_id__process_voice_over_jobs_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListProcessVoiceOverJobResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/process_voice_over_jobs/{job_id}":{"get":{"summary":"Return a single process voice over job","description":"Return a single process voice over job for the given asset.","operationId":"_get_process_voice_over_job_v1_assets__asset_id__process_voice_over_jobs__job_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProcessVoiceOverJobResponse"}}}},"404":{"description":"If the job does not exist","content":{"application/json":{"example":{"detail":"ProcessVoiceOverJob ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/languages/{language_id}":{"get":{"summary":"Returns a language","description":"Returns a language from its ID.","operationId":"_get_language_v1_languages__language_id__get","parameters":[{"name":"language_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Language Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLanguageResponse"}}}},"404":{"description":"When there isn't a language with the given ID","content":{"application/json":{"example":{"detail":"Language ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/languages":{"get":{"summary":"Returns all the languages","description":"List all the languages available.","operationId":"_list_languages_v1_languages_get","parameters":[{"name":"iso_639_1","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The ISO 639-1 code of the language","examples":["en"],"title":"Iso 639 1"},"description":"The ISO 639-1 code of the language"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListLanguagesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}":{"get":{"summary":"Get a transcription","description":"Returns a single transcription.","operationId":"_get_transcription_v1_assets__asset_id__transcriptions__transcription_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTranscriptionResponse"}}}},"404":{"description":"If the transcription doesn't exists or is from another tenant.","content":{"application/json":{"example":{"detail":"Transcription ID not found: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions":{"get":{"summary":" List Transcriptions","operationId":"_list_transcriptions_v1_assets__asset_id__transcriptions_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"language_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter transcriptions by language ID","examples":[1],"title":"Language Id"},"description":"Filter transcriptions by language ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTranscriptionsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/vtt":{"get":{"summary":" Get Subtitles Vtt","operationId":"_get_subtitles_vtt_v1_assets__asset_id__transcriptions__transcription_id__vtt_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"flavor","in":"query","required":false,"schema":{"$ref":"#/components/schemas/VttFlavor","description":"VTT flavor","examples":["standard"],"default":"standard"},"description":"VTT flavor"},{"name":"include_sound_descriptions","in":"query","required":false,"schema":{"type":"boolean","description":"Include sound descriptions in subtitles","default":true,"title":"Include Sound Descriptions"},"description":"Include sound descriptions in subtitles"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"max_chars_per_line","in":"query","required":false,"schema":{"type":"integer","minimum":10,"exclusiveMaximum":80,"description":"Maximum number of characters per subtitle line","default":37,"title":"Max Chars Per Line"},"description":"Maximum number of characters per subtitle line"},{"name":"max_lines_per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"exclusiveMaximum":8,"description":"Maximum number of lines per subtitle page","default":2,"title":"Max Lines Per Page"},"description":"Maximum number of lines per subtitle page"},{"name":"reading_speed_cps","in":"query","required":false,"schema":{"type":"integer","minimum":0,"exclusiveMaximum":30,"description":"Reading speed in characters per second. Set to 0 to disable the limit.","default":15,"title":"Reading Speed Cps"},"description":"Reading speed in characters per second. Set to 0 to disable the limit."}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/srt":{"get":{"summary":" Get Subtitles Srt","operationId":"_get_subtitles_srt_v1_assets__asset_id__transcriptions__transcription_id__srt_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"include_sound_descriptions","in":"query","required":false,"schema":{"type":"boolean","description":"Include sound descriptions in subtitles","default":true,"title":"Include Sound Descriptions"},"description":"Include sound descriptions in subtitles"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"max_chars_per_line","in":"query","required":false,"schema":{"type":"integer","minimum":10,"exclusiveMaximum":80,"description":"Maximum number of characters per subtitle line","default":37,"title":"Max Chars Per Line"},"description":"Maximum number of characters per subtitle line"},{"name":"max_lines_per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"exclusiveMaximum":8,"description":"Maximum number of lines per subtitle page","default":2,"title":"Max Lines Per Page"},"description":"Maximum number of lines per subtitle page"},{"name":"reading_speed_cps","in":"query","required":false,"schema":{"type":"integer","minimum":0,"exclusiveMaximum":30,"description":"Reading speed in characters per second. Set to 0 to disable the limit.","default":15,"title":"Reading Speed Cps"},"description":"Reading speed in characters per second. Set to 0 to disable the limit."}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/stl":{"get":{"summary":" Get Subtitles Stl","operationId":"_get_subtitles_stl_v1_assets__asset_id__transcriptions__transcription_id__stl_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"include_sound_descriptions","in":"query","required":false,"schema":{"type":"boolean","description":"Include sound descriptions in subtitles","default":true,"title":"Include Sound Descriptions"},"description":"Include sound descriptions in subtitles"},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"max_chars_per_line","in":"query","required":false,"schema":{"type":"integer","minimum":10,"exclusiveMaximum":80,"description":"Maximum number of characters per subtitle line","default":37,"title":"Max Chars Per Line"},"description":"Maximum number of characters per subtitle line"},{"name":"max_lines_per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"exclusiveMaximum":8,"description":"Maximum number of lines per subtitle page","default":2,"title":"Max Lines Per Page"},"description":"Maximum number of lines per subtitle page"},{"name":"reading_speed_cps","in":"query","required":false,"schema":{"type":"integer","minimum":0,"exclusiveMaximum":30,"description":"Reading speed in characters per second. Set to 0 to disable the limit.","default":15,"title":"Reading Speed Cps"},"description":"Reading speed in characters per second. Set to 0 to disable the limit."}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/segments/{segment_id}":{"patch":{"summary":"Update a segment by its ID","description":"Modifies a segment by its ID.\n\nIf the speaker ID is specified it must belongs to the same asset as the transcription of\nthe segment.\n\nIf the text is edited and the transcription is the original asset transcription, the\ntranslations will be marked as \"translation_pending\" which means that their translations\nmust be updated.\nTo update the translations use \"POST /v1/assets/{asset_id}/partial_retranslation_jobs\".\n\nIf either the start_ms or end_ms are set there are certain restrictions to keep in mind:\n* neither can be less than zero or greater than the asset duration.\n* start_ms cannot be equal or greater than end_ms.\n* the times cannot generate overlapping with other segments.","operationId":"_modify_segment_v1_assets__asset_id__transcriptions__transcription_id__segments__segment_id__patch","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"segment_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Segment Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifySegmentPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifySegmentResponse"}}}},"404":{"description":"If the combination of the IDs of the user, asset, transcription and segment is not coherent.","content":{"application/json":{"example":{"detail":"Speaker ID not found: 10"}}}},"409":{"description":"If the start_ms and end_ms values are not consistent or would generate overlapping between segments","content":{"application/json":{"example":{"detail":"One of the segments have inconsistent timings: The update segment operation for segment ID 10 have inconsistent start/end: start_ms cannot be less than zero: -1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/segments":{"post":{"summary":"Add segments to a transcription","description":"Add one or more segments to an existing transcription.\n\nNote that this will not return the new segments created, to get them you must get the\ntranscription.","operationId":"_add_segments_v1_assets__asset_id__transcriptions__transcription_id__segments_post","parameters":[{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSegmentsPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSegmentsResponse"}}}},"404":{"description":"If the asset or transcription ID does't exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update multiple segments from a transcription","description":"Modifies multiple segments by its ID.\n\nAll the segments must belong to the same transcription.\n\nAll the rules that apply to the edition of a single segment applies here.\nSee \"PATCH /v1/assets/{asset_id}/transcriptions/{transcription_id}/segments/{segment_id}\".","operationId":"_modify_segments_v1_assets__asset_id__transcriptions__transcription_id__segments_patch","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifySegmentsPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifySegmentsResponse"}}}},"404":{"description":"If the combination of the IDs of the asset, transcription and segments is not coherent, or if the speaker ID does not exist in the asset.","content":{"application/json":{"example":{"detail":"Segment ID not found: 99"}}}},"409":{"description":"If the start_ms and end_ms values of any of the edited segments are not consistent or would generate overlapping between segments","content":{"application/json":{"example":{"detail":"One of the segments have inconsistent timings: The update segment operation for segment ID 10 have inconsistent start/end: start_ms cannot be less than zero: -1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/partial_retranslation_jobs":{"post":{"summary":"Create asynchronous job for updating translations","description":"Starts the job for translating all segments that have a pending translation","operationId":"_add_partial_retranslation_job_v1_assets__asset_id__partial_retranslation_jobs_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartialRetranslationJobResponse"}}}},"409":{"description":"When either the asset has no segments pending to translate or there is a translation request already running","content":{"application/json":{"example":{"detail":"Asset 10 has no segments with pending translation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/partial_retranslation_jobs/{job_id}":{"get":{"summary":"Get the status of an update translations job","description":"Get the current status of an update translations job","operationId":"_get_partial_retranslation_job_status_v1_assets__asset_id__partial_retranslation_jobs__job_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPartialRetranslationJobStatusResponse"}}}},"404":{"description":"When either the job ID or the asset ID do not exist, or if the asset does not belong to the logged user","content":{"application/json":{"example":{"detail":"The combination of asset 200 and job 10 was not found"}}}},"409":{"description":"When the specified job does not belong to the asset","content":{"application/json":{"example":{"detail":"Job asset ID does not correspond with requested asset ID"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/stl/export":{"post":{"summary":"Export a specific stl subtitle.","description":"Export a transcription to an external storage (S3, Azure, GCP) in the specific format.\n\nThe system will use the configuration from the specified external storage to determine\nthe destination bucket/container and the authentication method.","operationId":"_export_subtitles_stl_v1_assets__asset_id__transcriptions__transcription_id__stl_export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"max_chars_per_line","in":"query","required":false,"schema":{"type":"integer","minimum":10,"exclusiveMaximum":80,"description":"Maximum number of characters per subtitle line","default":37,"title":"Max Chars Per Line"},"description":"Maximum number of characters per subtitle line"},{"name":"max_lines_per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"exclusiveMaximum":8,"description":"Maximum number of lines per subtitle page","default":2,"title":"Max Lines Per Page"},"description":"Maximum number of lines per subtitle page"},{"name":"reading_speed_cps","in":"query","required":false,"schema":{"type":"integer","minimum":0,"exclusiveMaximum":30,"description":"Reading speed in characters per second. Set to 0 to disable the limit.","default":15,"title":"Reading Speed Cps"},"description":"Reading speed in characters per second. Set to 0 to disable the limit."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionResponse"}}}},"400":{"description":"If the transcription is not ready for export, missing authentication data, no export service for the type, or secret retrieval failed","content":{"application/json":{"example":{"detail":"Transcription not ready for export | Missing 'key' in authentication data | No export service available for type | Failed to retrieve secret"}}}},"404":{"description":"If the external storage, asset, or transcription doesn't exist.","content":{"application/json":{"example":{"detail":"ExternalStorage not found | Asset not found | Transcription not found"}}}},"424":{"description":"If the Azure container does not exist. | If the S3 bucket does not exist.","content":{"application/json":{"example":{"detail":"Azure container does not exist for path | AWS S3 bucket does not exist for path."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/srt/export":{"post":{"summary":"Export a specific srt subtitle.","description":"Export a transcription to an external storage (S3, Azure, GCP) in the specific format.\n\nThe system will use the configuration from the specified external storage to determine\nthe destination bucket/container and the authentication method.","operationId":"_export_subtitles_srt_v1_assets__asset_id__transcriptions__transcription_id__srt_export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"max_chars_per_line","in":"query","required":false,"schema":{"type":"integer","minimum":10,"exclusiveMaximum":80,"description":"Maximum number of characters per subtitle line","default":37,"title":"Max Chars Per Line"},"description":"Maximum number of characters per subtitle line"},{"name":"max_lines_per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"exclusiveMaximum":8,"description":"Maximum number of lines per subtitle page","default":2,"title":"Max Lines Per Page"},"description":"Maximum number of lines per subtitle page"},{"name":"reading_speed_cps","in":"query","required":false,"schema":{"type":"integer","minimum":0,"exclusiveMaximum":30,"description":"Reading speed in characters per second. Set to 0 to disable the limit.","default":15,"title":"Reading Speed Cps"},"description":"Reading speed in characters per second. Set to 0 to disable the limit."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionResponse"}}}},"400":{"description":"If the transcription is not ready for export, missing authentication data, no export service for the type, or secret retrieval failed","content":{"application/json":{"example":{"detail":"Transcription not ready for export | Missing 'key' in authentication data | No export service available for type | Failed to retrieve secret"}}}},"404":{"description":"If the external storage, asset, or transcription doesn't exist.","content":{"application/json":{"example":{"detail":"ExternalStorage not found | Asset not found | Transcription not found"}}}},"424":{"description":"If the Azure container does not exist. | If the S3 bucket does not exist.","content":{"application/json":{"example":{"detail":"Azure container does not exist for path | AWS S3 bucket does not exist for path."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/vtt/export":{"post":{"summary":"Export a specific vtt subtitle.","description":"Export a transcription to an external storage (S3, Azure, GCP) in the specific format.\n\nThe system will use the configuration from the specified external storage to determine\nthe destination bucket/container and the authentication method.","operationId":"_export_subtitles_vtt_v1_assets__asset_id__transcriptions__transcription_id__vtt_export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"max_chars_per_line","in":"query","required":false,"schema":{"type":"integer","minimum":10,"exclusiveMaximum":80,"description":"Maximum number of characters per subtitle line","default":37,"title":"Max Chars Per Line"},"description":"Maximum number of characters per subtitle line"},{"name":"max_lines_per_page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"exclusiveMaximum":8,"description":"Maximum number of lines per subtitle page","default":2,"title":"Max Lines Per Page"},"description":"Maximum number of lines per subtitle page"},{"name":"reading_speed_cps","in":"query","required":false,"schema":{"type":"integer","minimum":0,"exclusiveMaximum":30,"description":"Reading speed in characters per second. Set to 0 to disable the limit.","default":15,"title":"Reading Speed Cps"},"description":"Reading speed in characters per second. Set to 0 to disable the limit."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionResponse"}}}},"400":{"description":"If the transcription is not ready for export, missing authentication data, no export service for the type, or secret retrieval failed","content":{"application/json":{"example":{"detail":"Transcription not ready for export | Missing 'key' in authentication data | No export service available for type | Failed to retrieve secret"}}}},"404":{"description":"If the external storage, asset, or transcription doesn't exist.","content":{"application/json":{"example":{"detail":"ExternalStorage not found | Asset not found | Transcription not found"}}}},"424":{"description":"If the Azure container does not exist. | If the S3 bucket does not exist.","content":{"application/json":{"example":{"detail":"Azure container does not exist for path | AWS S3 bucket does not exist for path."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/transcriptions/{transcription_id}/json/export":{"post":{"summary":"Export a specific json format transcription.","description":"Export a transcription to an external storage (S3, Azure, GCP) in the specific format.\n\nThe system will use the configuration from the specified external storage to determine\nthe destination bucket/container and the authentication method.","operationId":"_export_subtitles_json_v1_assets__asset_id__transcriptions__transcription_id__json_export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"transcription_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Transcription Id"}},{"name":"start","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["1500","00:01:30.500","00:01:30"],"title":"Start"},"description":"Start time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"},{"name":"end","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'","examples":["5000","00:05:00.000","00:05:00"],"title":"End"},"description":"End time filter. Formats: ms ('1500'), 'HH:MM:SS.mmm', 'HH:MM:SS'"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportTranscriptionResponse"}}}},"400":{"description":"If the transcription is not ready for export, missing authentication data, no export service for the type, or secret retrieval failed","content":{"application/json":{"example":{"detail":"Transcription not ready for export | Missing 'key' in authentication data | No export service available for type | Failed to retrieve secret"}}}},"404":{"description":"If the external storage, asset, or transcription doesn't exist.","content":{"application/json":{"example":{"detail":"ExternalStorage not found | Asset not found | Transcription not found"}}}},"424":{"description":"If the Azure container does not exist. | If the S3 bucket does not exist.","content":{"application/json":{"example":{"detail":"Azure container does not exist for path | AWS S3 bucket does not exist for path."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/metadata":{"get":{"summary":"Gets all of the assets metadata","description":"Return all the metadata associated to the given asset in all the languages.","operationId":"_list_metadata_v1_assets__asset_id__metadata_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"language_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"The language ID of the metadata","examples":["00000000-0000-0000-0000-000000000002"],"title":"Language Id"},"description":"The language ID of the metadata"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMetadataResponse"}}}},"404":{"description":"If the asset doesn't exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/metadata/{metadata_id}":{"get":{"summary":"Get an asset metadata","description":"Returns a metadata from an asset.","operationId":"_get_metadata_v1_assets__asset_id__metadata__metadata_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"metadata_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Metadata Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetMetadataResponse"}}}},"404":{"description":"If either the asset ID or the metadata ID doesn't exist","content":{"application/json":{"example":{"detail":"AssetMetadata ID not found: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Updates fields of an asset metadata","description":"Updates fields of an asset metadata.\n\nOnly the fields present in the payload are updated; each one replaces the stored field\nvalue entirely, there is no merge of any kind.\n\nFor fields holding a list, like `highlights`, always send the complete list: any item\nnot included in the payload is deleted.","operationId":"_update_metadata_v1_assets__asset_id__metadata__metadata_id__patch","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"metadata_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Metadata Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMetadataPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMetadataResponse"}}}},"404":{"description":"If the asset ID, the metadata ID or any of the payload fields doesn't exist","content":{"application/json":{"example":{"detail":"Metadata fields not found: highlights"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/metadata/{metadata_id}/json/export":{"post":{"summary":"Export an asset metadata","description":"Export asset metadata to an external storage (S3, Azure, GCP) as a JSON file.\n\nThe system will use the configuration from the specified external storage to determine\nthe destination bucket/container and the authentication method.","operationId":"_export_metadata_v1_assets__asset_id__metadata__metadata_id__json_export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"metadata_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Metadata Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportMetadataPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportMetadataResponse"}}}},"400":{"description":"If the metadata is not ready for export, missing authentication data, no export service for the type, or secret retrieval failed","content":{"application/json":{"example":{"detail":"Metadata not ready for export | Missing 'key' in authentication data | No export service available for type | Failed to retrieve secret"}}}},"404":{"description":"If the external storage, asset, or metadata doesn't exist.","content":{"application/json":{"example":{"detail":"ExternalStorage not found | Asset not found | Metadata clip not found"}}}},"424":{"description":"If the Azure container does not exist. | If the S3 bucket does not exist.","content":{"application/json":{"example":{"detail":"Azure container does not exist for path | AWS S3 bucket does not exist for path."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/search":{"post":{"summary":"Performs a multi-modal search on assets","description":"Get an external storage's information by its ID.","operationId":"_perform_multi_modal_search_v1_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiModalSearchPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultiModalSearchResponse"}}}},"404":{"description":"No tenant is found with the given ID","content":{"application/json":{"example":{"detail":"Tenant's ID not found: 00000000-0000-0000-0000-00000000000a"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usages/current_month":{"get":{"summary":"Get current month's tenant resource usage","description":"Returns the total resource usage for the current month in the current user's tenant.\nThe response includes:\n- Total processing hours for the current month\n- Current storage usage (if available)","operationId":"_get_current_month_usage_v1_usages_current_month_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"type":"string","format":"uuid","description":"Tenant ID associated to the resource usage","examples":[1],"title":"Tenant Id"},"description":"Tenant ID associated to the resource usage"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentMonthUsageResponse"}}}},"400":{"description":"When the user doesn't have an associated plan","content":{"application/json":{"example":{"detail":"Not associated plan."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usages/historical":{"get":{"summary":"Get historical tenant resource usage","description":"Returns the daily resource usage between two dates in the current user's tenant.\nThe response includes:\n- Daily processing hours between the specified dates\n- Storage usage for that period (if available)\nDates should be provided in YYYY-MM-DD format.","operationId":"_get_historical_usage_v1_usages_historical_get","parameters":[{"name":"start_date","in":"query","required":true,"schema":{"type":"string","description":"Start date in format YYYY-MM-DD","examples":["2023-03-06"],"title":"Start Date"},"description":"Start date in format YYYY-MM-DD"},{"name":"end_date","in":"query","required":true,"schema":{"type":"string","description":"End date in format YYYY-MM-DD","examples":["2024-04-17"],"title":"End Date"},"description":"End date in format YYYY-MM-DD"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoricalUsageResponse"}}}},"400":{"description":"When user request with the wrong date format","content":{"application/json":{"example":{"detail":"Invalid date format. Use YYYY-MM-DD"}}}},"406":{"description":"When user ask for a date with a huge difference","content":{"application/json":{"example":{"detail":"Date range cannot exceed one year."}}}},"422":{"description":"When end_date is before start_date","content":{"application/json":{"example":{"detail":"End date must be after or equal to start date."}}}}}}},"/v1/assets/{asset_id}/camera_shoots":{"get":{"summary":"Return the camera shoot of a specific asset","description":"Returns all the camera shoots of a specific action.","operationId":"_return_camera_shoot_v1_assets__asset_id__camera_shoots_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnShootResponse"}}}},"404":{"description":"If the asset or camera shoot doesn't exist","content":{"application/json":{"example":{"detail":"Camera Shoot or Asset not found: 1"}}}},"400":{"description":"If no camera shoots are found","content":{"application/json":{"example":{"detail":"No camera shoots available for the specified asset"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/faces":{"get":{"summary":"Return the face detctions of a specific asset","description":"Returns face information for a specific asset.\n\nThis endpoint retrieves all face associated with a specific asset,\nincluding their identifiers, start times, bounding boxes, and confidence scores.","operationId":"_return_face_v1_assets__asset_id__faces_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnFaceResponse"}}}},"404":{"description":"If the asset or face doesn't exist","content":{"application/json":{"example":{"detail":"Asset not found: 1"}}}},"400":{"description":"If no face are found","content":{"application/json":{"example":{"detail":"No face available for the specified asset"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/autocenter":{"get":{"summary":"Return the autocenter of a specific video asset","description":"Returns the list of all the faces autocenter.\n\nThis endpoint identifies the starting time and horizontal center point of group of list\nof face detection in the asset, useful for automatic framing or cropping.","operationId":"_return_autocenter_v1_assets__asset_id__autocenter_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AutocenterResponse"}}}},"404":{"description":"If the asset or face doesn't exist","content":{"application/json":{"example":{"detail":"No face detections found for Asset: 1"}}}},"400":{"description":"If no suitable face is found","content":{"application/json":{"example":{"detail":"Unable to determine autocenter for the asset"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips":{"post":{"summary":"Add video clips","description":"Add video clips to an asset. Allows creating multiple video clips in a single request.","operationId":"_add_video_clips_v1_assets__asset_id__video_clips_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVideoClipsPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoClipResponseOutput"}}}},"400":{"description":"If trying to delete the first autocenter","content":{"application/json":{"example":{"detail":"Autocenter that starts in {start_ms} can't be deleted"}}}},"404":{"description":"If the asset doesn't exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 1"}}}},"406":{"description":"If the clips has an url but not duration","content":{"application/json":{"example":{"detail":"No duration or duration is {duration_ms} in the clip."}}}},"422":{"description":"If the requested subtitle language has no transcription","content":{"application/json":{"example":{"detail":"No transcription found for language ID 42"}}}}}},"get":{"summary":"Get video clips.","description":"Retrieve video clips associated with an asset.\nAllows fetching all video clips for a given asset ID.","operationId":"_get_video_clips_v1_assets__asset_id__video_clips_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoClipResponseOutput"}}}},"404":{"description":"If no video clips exist for the asset","content":{"application/json":{"example":{"detail":"No video clips found for Asset ID: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/download":{"post":{"summary":"Download video clips","description":"Download multiple video clips as a zip file.\nGenerates a pre-signed URL to download the selected video clips in a zip archive.","operationId":"_download_video_clips_v1_assets__asset_id__video_clips_download_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadVideoClipsPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadVideoClipsAsyncResponse"}}}},"404":{"description":"If the asset or video clips don't exist","content":{"application/json":{"example":{"detail":"Asset ID or video clips not found"}}}},"400":{"description":"If there's an error creating the zip file","content":{"application/json":{"example":{"detail":"Error creating zip archive"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_id}":{"get":{"summary":"Get single video clip","description":"Retrieve a single video clip by its ID.\nReturns detailed information about a specific video clip including its state and properties.","operationId":"_get_single_video_clip_v1_assets__asset_id__video_clips__video_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoClipForResponse"}}}},"404":{"description":"If the video clip or asset doesn't exist","content":{"application/json":{"example":{"detail":"Video clip not found or access denied"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_clip_id}":{"delete":{"summary":"Delete a video clip","description":"Delete a video clip.\nRemoves the clip's rendered .mp4 from S3 and its row from the database.","operationId":"_delete_video_clip_v1_assets__asset_id__video_clips__video_clip_id__delete","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Clip Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"If the video clip or asset doesn't exist","content":{"application/json":{"example":{"detail":"VideoClip ID not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"409":{"description":"If the clip is still rendering and its .mp4 does not exist yet","content":{"application/json":{"example":{"detail":"Video clip 550e8400-e29b-41d4-a716-446655440000 is still rendering and cannot be deleted yet"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_clip_id}/documents":{"get":{"summary":"Get a video clip documents","description":"Retrieve a video clip related documents.","operationId":"_list_video_clip_documents_v1_assets__asset_id__video_clips__video_clip_id__documents_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Clip Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListVideoClipDocumentsResponse"}}}},"404":{"description":"If the video clip or asset doesn't exist","content":{"application/json":{"example":{"detail":"Video clip not found or access denied"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/download_async":{"post":{"summary":"Download video clips asynchronously","description":"Start an asynchronous job to download video clips as a zip file.\nIf only one clip ID is provided, returns a presigned URL to the .mp4 directly.\nIf multiple clip IDs are provided, creates a background job that compiles them into a zip archive.\nReturns a job ID that can be used to check the status of the download process.","operationId":"_download_video_clips_async_v1_assets__asset_id__video_clips_download_async_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadVideoClipsPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadVideoClipsAsyncResponse"}}}},"404":{"description":"If the asset or video clips don't exist","content":{"application/json":{"example":{"detail":"Asset ID or video clips not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/download_async/{job_id}":{"get":{"summary":"Check download job status","description":"Check the status of a video clip download job.\nReturns the current state of the job and, when complete,\nprovides a pre-signed URL to download the generated zip file.","operationId":"_check_download_status_v1_assets__asset_id__video_clips_download_async__job_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckDownloadStatusResponse"}}}},"404":{"description":"If the job doesn't exist or doesn't belong to the user's tenant","content":{"application/json":{"example":{"detail":"Job not found"}}}},"400":{"description":"If the job is not a video download job","content":{"application/json":{"example":{"detail":"Job {job_id} is not a video download job"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_clip_id}/export":{"post":{"summary":"Export a specific video_clip.","description":"Export a video clip to an external storage (S3, Azure, GCP).\n\nThe system will use the configuration from the specified external storage to determine\nthe destination bucket/container and the authentication method.","operationId":"_export_clip_v1_assets__asset_id__video_clips__video_clip_id__export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Clip Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportClipPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportClipResponse"}}}},"400":{"description":"If the clip is not ready for export, missing authentication data, no export service for the type, or secret retrieval failed","content":{"application/json":{"example":{"detail":"Clip not ready for export | Missing 'key' in authentication data | No export service available for type | Failed to retrieve secret"}}}},"404":{"description":"If the external storage, asset, or video clip doesn't exist.","content":{"application/json":{"example":{"detail":"ExternalStorage not found | Asset not found | Video clip not found"}}}},"424":{"description":"If the Azure container does not exist. | If the S3 bucket does not exist.","content":{"application/json":{"example":{"detail":"Azure container does not exist for path | AWS S3 bucket does not exist for path."}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_clip_id}/async_export":{"post":{"summary":"Create asynchronous export job","description":"Start an asynchronous job for exporting video clips to an external storage (S3, Azure, GCP).\n\nReturns a job ID that can be used to check the status of the export process.","operationId":"_async_export_video_clip_v1_assets__asset_id__video_clips__video_clip_id__async_export_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Clip Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/c21_saas_public_api__routers_v1__video_clips__AsyncExportPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncExportJobResponse"}}}},"404":{"description":"If the asset or video clip do not exist","content":{"application/json":{"example":{"detail":"Asset ID or video clip ID not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_clip_id}/async_export/{job_id}":{"get":{"summary":"Check export job status","description":"Check the status of a job for exporting a video clip.\nReturns the current state of the job and, when complete,\nprovides the full destination URL of the exported file.","operationId":"_check_async_export_status_v1_assets__asset_id__video_clips__video_clip_id__async_export__job_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Clip Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/c21_saas_public_api__routers_v1__video_clips__CheckExportStatusResponse"}}}},"404":{"description":"If the job doesn't exist or doesn't belong to the user's tenant","content":{"application/json":{"example":{"detail":"Job not found"}}}},"409":{"description":"If asset or video-clip do not correspond to Job's payload, or not a video-clip export job","content":{"application/json":{"example":{"detail":"Asset {asset_id} or video-clip {video_clip_id} do not correspond to Job's payload, or {job_id} not a video-clip export job"}}}},"500":{"description":"If a valid payload cannot be identified from the job","content":{"application/json":{"example":{"detail":"Job {job_id} does not contain a valid payload"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/video_clips/{video_clip_id}/social_media/posts":{"post":{"summary":"Publish a video clip to a social media account","description":"Start an async job to upload a video clip and publish it to a social media account.\n\nPoll `GET /v1/social_media/posts/upload_jobs/{job_id}` to track progress.","operationId":"_create_clip_social_media_post_v1_assets__asset_id__video_clips__video_clip_id__social_media_posts_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"video_clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Clip Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVideoClipSocialMediaPostPayload"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVideoClipSocialMediaPostResponse"}}}},"404":{"description":"When the social media account, asset, or video clip does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media account not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"When the caption exceeds the platform's character limit, the clip exceeds the platform's duration limit, or the platform_options do not match the account's platform","content":{"application/json":{"example":{"detail":"Caption too long for twitter: 350 characters (limit: 280)"}}}}}}},"/v1/video_compositions":{"post":{"summary":"Create video composition","description":"Create a new video composition.\nAllows creating a new video composition with specified tracks, dimensions, and settings.\n\nEach track contains a list of segments that can be of two types:\n- `asset`: a segment referencing an existing asset, defined by `start_from` and `duration_frames`.\n- `empty`: a blank segment defined by `duration_frames`, useful for adding pauses or gaps.","operationId":"_create_video_composition_v1_video_compositions_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVideoCompositionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoCompositionForResponse"}}}},"400":{"description":"If the request data is invalid","content":{"application/json":{"example":{"detail":"Invalid video composition data"}}}},"404":{"description":"If referenced assets, branding, or language don't exist","content":{"application/json":{"example":{"detail":"Asset ID, branding ID, or language ID not found"}}}},"403":{"description":"If the user doesn't have permission to use the referenced resources","content":{"application/json":{"example":{"detail":"Forbidden operation on video composition"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List video compositions","description":"List video compositions.\nRetrieve paginated list of video compositions for the current tenant.","operationId":"_list_video_compositions_v1_video_compositions_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoCompositionListResponse"}}}},"400":{"description":"If pagination parameters are invalid","content":{"application/json":{"example":{"detail":"Invalid pagination parameters"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}":{"get":{"summary":"Get video composition","description":"Retrieve a single video composition by its ID.\nReturns detailed information about a specific video composition including all tracks and segments.","operationId":"_get_video_composition_v1_video_compositions__video_composition_id__get","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoCompositionForResponse"}}}},"404":{"description":"If the video composition doesn't exist","content":{"application/json":{"example":{"detail":"Video composition not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Update video composition","description":"Update an existing video composition.\nAllows updating the composition's properties including tracks, dimensions, and settings.\nOnly the provided fields will be updated; omitted fields will remain unchanged.\n\nEach track contains a list of segments that can be of two types:\n- `asset`: a segment referencing an existing asset, defined by `start_from` and `duration_frames`.\n- `empty`: a blank segment defined by `duration_frames`, useful for adding pauses or gaps.","operationId":"_update_video_composition_v1_video_compositions__video_composition_id__put","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVideoCompositionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoCompositionForResponse"}}}},"400":{"description":"If the request data is invalid","content":{"application/json":{"example":{"detail":"Invalid video composition data"}}}},"404":{"description":"If the video composition doesn't exist","content":{"application/json":{"example":{"detail":"Video composition not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"403":{"description":"If the user doesn't have permission to update the video composition","content":{"application/json":{"example":{"detail":"Forbidden operation on video composition"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete video composition","description":"Delete a video composition by its ID.\nPermanently removes the video composition and all associated data.","operationId":"_delete_video_composition_v1_video_compositions__video_composition_id__delete","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"If the video composition doesn't exist","content":{"application/json":{"example":{"detail":"Video composition not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"403":{"description":"If the user doesn't have permission to delete the video composition","content":{"application/json":{"example":{"detail":"Forbidden operation on video composition"}}}},"409":{"description":"If any of its renders is still in progress","content":{"application/json":{"example":{"detail":"Render job 550e8400-e29b-41d4-a716-446655440000 is still in progress and cannot be deleted yet"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/autocenters":{"get":{"summary":"Get video composition autocenters","description":"Get the autocenters for each segment in a video composition.\nReturns per-track, per-segment autocenter crop instructions filtered to the segment's frame range.\nEmpty segments return an empty autocenters list.","operationId":"_get_video_composition_autocenters_v1_video_compositions__video_composition_id__autocenters_get","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoCompositionAutocentersResponse"}}}},"404":{"description":"If the video composition doesn't exist","content":{"application/json":{"example":{"detail":"Video composition not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"400":{"description":"If an asset in the composition has no width","content":{"application/json":{"example":{"detail":"Asset used in video composition has no width"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/render":{"post":{"summary":"Render video composition","description":"Render a video composition.\nStarts an asynchronous job that renders the video composition into a final video file.\nReturns a job ID that can be used to track the render progress.","operationId":"_render_video_composition_v1_video_compositions__video_composition_id__render_post","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderVideoCompositionResponse"}}}},"404":{"description":"If the video composition doesn't exist","content":{"application/json":{"example":{"detail":"Video composition not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"400":{"description":"If an asset in the composition has no files path, no width, or the aspect ratio is unsupported","content":{"application/json":{"example":{"detail":"Asset used in video composition has no files path"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/render/{job_id}":{"get":{"summary":"Get render job status","description":"Get the status of a video composition render job.\nReturns the current state of the render job identified by the given job ID.","operationId":"_get_render_status_v1_video_compositions__video_composition_id__render__job_id__get","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderVideoCompositionResponse"}}}},"404":{"description":"If the render job doesn't exist","content":{"application/json":{"example":{"detail":"Render job not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a video composition render","description":"Delete a single render of a video composition.\nRemoves the render's .mp4 and its payload JSON from S3, leaving the other renders\nand the composition intact.","operationId":"_delete_render_v1_video_compositions__video_composition_id__render__job_id__delete","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"If the video composition or the render job doesn't exist","content":{"application/json":{"example":{"detail":"Job ID not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"409":{"description":"If the render is still in progress and its .mp4 does not exist yet","content":{"application/json":{"example":{"detail":"Render job 550e8400-e29b-41d4-a716-446655440000 is still in progress and cannot be deleted yet"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/download":{"post":{"summary":"Download rendered video composition","description":"Download a rendered video composition.\nReturns a pre-signed URL to download the rendered .mp4 file directly.\nRequires the render_job_id of a successfully finished render job.","operationId":"_download_video_composition_async_v1_video_compositions__video_composition_id__download_post","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadVideoCompositionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DownloadVideoCompositionResponse"}}}},"404":{"description":"If the video composition or render job doesn't exist","content":{"application/json":{"example":{"detail":"Video composition not found: 550e8400-e29b-41d4-a716-446655440000"}}}},"409":{"description":"If the render job is not finished","content":{"application/json":{"example":{"detail":"Render job {job_id} is not finished"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/async_export":{"post":{"summary":"Create asynchronous export job for video composition","description":"Start an asynchronous job for exporting a rendered video composition\nto an external storage (S3, Azure, GCP).\n\nReturns a job ID that can be used to check the status of the export process.","operationId":"_async_export_video_composition_v1_video_compositions__video_composition_id__async_export_post","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/c21_saas_public_api__routers_v1__video_compositions__AsyncExportPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncExportJobResponse"}}}},"404":{"description":"If the video composition, external storage, or render job does not exist","content":{"application/json":{"example":{"detail":"Video composition, external storage, or render job not found"}}}},"409":{"description":"If the render job is not finished","content":{"application/json":{"example":{"detail":"Render job {job_id} is not finished"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/async_export/{job_id}":{"get":{"summary":"Check video composition export job status","description":"Check the status of a job for exporting a video composition.\nReturns the current state of the job and, when complete,\nprovides the full destination URL of the exported file.","operationId":"_check_composition_export_status_v1_video_compositions__video_composition_id__async_export__job_id__get","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/c21_saas_public_api__routers_v1__video_compositions__CheckExportStatusResponse"}}}},"404":{"description":"If the job doesn't exist or doesn't belong to the user's tenant","content":{"application/json":{"example":{"detail":"Job not found"}}}},"409":{"description":"If the video composition does not correspond to Job's payload, or the job is not a video composition export job","content":{"application/json":{"example":{"detail":"Video composition {video_composition_id} does not correspond to Job's payload, or {job_id} is not a video composition export job"}}}},"500":{"description":"If a valid payload cannot be identified from the job","content":{"application/json":{"example":{"detail":"Job {job_id} does not contain a valid payload"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/video_compositions/{video_composition_id}/social_media/posts":{"post":{"summary":"Publish a video composition to a social media account","description":"Start an async job to upload a rendered video composition and publish it to a social media account.\n\nPoll `GET /v1/social_media/posts/upload_jobs/{job_id}` to track progress.","operationId":"_create_composition_social_media_post_v1_video_compositions__video_composition_id__social_media_posts_post","parameters":[{"name":"video_composition_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Video Composition Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCompositionSocialMediaPostPayload"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCompositionSocialMediaPostResponse"}}}},"404":{"description":"When the social media account or video composition does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media account not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"When the caption exceeds the platform's character limit","content":{"application/json":{"example":{"detail":"Caption too long for twitter: 350 characters (limit: 280)"}}}}}}},"/v1/templates/{template_id}":{"get":{"summary":"Get template details","description":"Get a template's complete information by its ID, including its blacklists, whitelists and domain dictionaries.","operationId":"_get_template_v1_templates__template_id__get","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTemplateResponse"}}}},"404":{"description":"When there isn't a template with the given ID","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a template","description":"Updates a template with the provided data. Can be used to:\n- Change the template name\n- Update the associated domain dictionaries\n- Update the associated blacklists\n- Enable or disable OCR functionality\n- Update the associated whitelists","operationId":"_update_template_v1_templates__template_id__patch","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTemplatePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTemplateResponse"}}}},"400":{"description":"When the provided template update data is invalid or references non-existent entities","content":{"application/json":{"example":{"detail":"Invalid template update: Blacklist ID not found"}}}},"404":{"description":"When there isn't a template with the given ID","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"406":{"description":"When the ID of the domain dictionary, whitelist or blacklist aren't found","content":{"application/json":{"example":{"detail":"ID not found for Blacklist"}}}},"409":{"description":"When the clients surpasses the total languages limit of their plans.","content":{"application/json":{"example":{"detail":"Language limit surpass. Limit is 4"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a template","description":"Delete a template by ID","operationId":"_delete_template_v1_templates__template_id__delete","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When there isn't a template with the given ID","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/templates":{"get":{"summary":"List tenant templates","description":"Returns a paginated list of all templates for the tenant with navigation links.","operationId":"_get_tenant_templates_paginated_v1_templates_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTemplatesResponse"}}}},"404":{"description":"If the page number specified is not valid","content":{"application/json":{"example":{"detail":"Page number not found"}}}},"422":{"description":"If the number of items per page exceeds the maximum allowed or if sentiment parameter is invalid","content":{"application/json":{"example":{"detail":"Requested 150 items per page exceeds the maximum of 100"}}}}}},"post":{"summary":"Add a new template","description":"Adds a new template to a tenant with its associated blacklists, whitelists and domain dictionaries.\nThe template name must be unique within the tenant.","operationId":"_add_template_v1_templates_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTemplatePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddTemplateResponse"}}}},"400":{"description":"When there is a validation error","content":{"application/json":{"example":{"detail":"Template name already exists: New template name"}}}},"404":{"description":"When there isn't a object with the given ID","content":{"application/json":{"example":{"detail":"Object ID not found: 10"}}}},"406":{"description":"When the ID of the domain dictionary, whitelist or blacklist aren't found","content":{"application/json":{"example":{"detail":"ID not found for Blacklist"}}}},"409":{"description":"When the clients surpasses the total languages limit of their plans.","content":{"application/json":{"example":{"detail":"Language limit surpass. Limit is 4"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blacklists":{"get":{"summary":"List all blacklists","description":"List all blacklists accessible to the user.","operationId":"_list_blacklists_v1_blacklists_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBlacklistsResponse"}}}}}},"post":{"summary":"Create a new blacklist","description":"Creates a new blacklist.","operationId":"_create_blacklist_v1_blacklists_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBlacklistPayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBlacklistResponse"}}}},"404":{"description":"When there isn't a template with the given ID","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"400":{"description":"When there isn't a language with the given ID or code","content":{"application/json":{"example":{"detail":"Language not found: en"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blacklists/{blacklist_id}":{"get":{"summary":"Get a blacklist","description":"Get a specific blacklist.","operationId":"_get_blacklist_v1_blacklists__blacklist_id__get","parameters":[{"name":"blacklist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Blacklist Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBlacklistResponse"}}}},"404":{"description":"When there isn't a blacklist with the given ID","content":{"application/json":{"example":{"detail":"Blacklist ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a blacklist","description":"Updates an existing blacklist.","operationId":"_update_blacklist_v1_blacklists__blacklist_id__patch","parameters":[{"name":"blacklist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Blacklist Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBlacklistPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBlacklistResponse"}}}},"404":{"description":"When there isn't a blacklist with the given ID","content":{"application/json":{"example":{"detail":"Blacklist ID not found: 10"}}}},"400":{"description":"When there isn't a language with the given ID or code","content":{"application/json":{"example":{"detail":"Language not found: en"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a blacklist","description":"Deletes a blacklist.","operationId":"_delete_blacklist_v1_blacklists__blacklist_id__delete","parameters":[{"name":"blacklist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Blacklist Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When there isn't a blacklist with the given ID","content":{"application/json":{"example":{"detail":"Blacklist ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dictionaries":{"get":{"summary":"List all dictionaries","description":"List all domain dictionaries accessible to the user.","operationId":"_list_dictionaries_v1_dictionaries_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListDictionariesResponse"}}}}}},"post":{"summary":"Create a new dictionary","description":"Creates a new domain dictionary and assigns it to a template, if template_id is passed.","operationId":"_create_dictionary_v1_dictionaries_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDictionaryPayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDictionaryResponse"}}}},"404":{"description":"When there isn't a template with the given ID","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/dictionaries/{dictionary_id}":{"get":{"summary":"Get a dictionary","description":"Get a specific domain dictionary.","operationId":"_get_dictionary_v1_dictionaries__dictionary_id__get","parameters":[{"name":"dictionary_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dictionary Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDictionaryResponse"}}}},"404":{"description":"When there isn't a dictionary with the given ID","content":{"application/json":{"example":{"detail":"Dictionary ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a dictionary","description":"Updates an existing domain dictionary.","operationId":"_update_dictionary_v1_dictionaries__dictionary_id__patch","parameters":[{"name":"dictionary_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dictionary Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDictionaryPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDictionaryResponse"}}}},"404":{"description":"When there isn't a dictionary with the given ID","content":{"application/json":{"example":{"detail":"Dictionary ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a dictionary","description":"Deletes a domain dictionary.","operationId":"_delete_dictionary_v1_dictionaries__dictionary_id__delete","parameters":[{"name":"dictionary_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Dictionary Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When there isn't a dictionary with the given ID","content":{"application/json":{"example":{"detail":"Dictionary ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/plans/{plan_id}":{"get":{"summary":"Reads a plan","description":"Gets a plan's information by its ID.","operationId":"_get_plan_v1_plans__plan_id__get","parameters":[{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Plan Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPlanResponse"}}}},"404":{"description":"When there isn't a plan with the given ID","content":{"application/json":{"example":{"detail":"Plan ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/plans":{"get":{"summary":"List all plans","description":"Returns a list of all plans in the system.","operationId":"_list_plans_v1_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPlansResponse"}}}}}}},"/v1/collections":{"post":{"summary":"Create a new collection","description":"Adds a new collection to the system.\n\nThe collection will be created with the provided name and optional template ID.","operationId":"_add_collection_v1_collections_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCollectionPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCollectionResponse"}}}},"400":{"description":"When there is a validation error","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"404":{"description":"When the specified template ID doesn't exist","content":{"application/json":{"example":{"detail":"Template ID not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List all collections","description":"Returns a list of all collections in the system.","operationId":"_list_collections_v1_collections_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCollectionsResponse"}}}},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"422":{"description":"If the number of items per page exceeds the maximum allowed or if sentiment parameter is invalid","content":{"application/json":{"example":{"detail":"Requested 150 items per page exceeds the maximum of 100"}}}}}}},"/v1/collections/{collection_id}":{"get":{"summary":"Get a collection by ID","description":"Gets a collection's information by its ID.\n\nReturns detailed information about the collection including all associated assets.","operationId":"_get_collection_v1_collections__collection_id__get","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Collection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCollectionResponse"}}}},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"404":{"description":"When there isn't a object with the given ID","content":{"application/json":{"example":{"detail":"Collection ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a collection","description":"Updates a collection.\n\nAllows updating the collection's name and/or template ID.","operationId":"_update_collection_v1_collections__collection_id__patch","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Collection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCollectionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCollectionResponse"}}}},"400":{"description":"When there is a validation error","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"404":{"description":"When there isn't a object with the given ID","content":{"application/json":{"example":{"detail":"Collection ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a collection","description":"Deletes a collection.\n\nPermanently removes a collection from the system.\nAll associations with assets will also be removed.","operationId":"_delete_collection_v1_collections__collection_id__delete","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Collection Id"}}],"responses":{"204":{"description":"Successful Response"},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"404":{"description":"When there isn't a object with the given ID","content":{"application/json":{"example":{"detail":"Collection ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/collections/{collection_id}/assets":{"post":{"summary":"Add assets to a collection","description":"Adds assets to a collection.\n\nTakes a list of asset IDs and attempts to add them to the specified collection.\nAssets will not be added if:\n- They already exist in the collection\n\nIn the cases that you send a non-existing asset, an error will be raised.\n\nReturns lists of successfully added assets and assets that couldn't be added.","operationId":"_add_assets_to_collection_v1_collections__collection_id__assets_post","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Collection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAssetToCollectionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddAssetToCollectionResponse"}}}},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"404":{"description":"When there isn't a object with the given ID","content":{"application/json":{"example":{"detail":"Collection ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Remove assets from a collection","description":"Removes assets from a collection.\n\nTakes a list of asset IDs and attempts to remove them from the specified collection.\nAssets will not be removed if:\n- They don't exist in the collection\n\nIn the cases that you send a non-existing asset, an error will be raised.\n\nReturns lists of successfully removed assets and assets that couldn't be removed.","operationId":"_remove_assets_from_collection_v1_collections__collection_id__assets_delete","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Collection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveAssetFromCollectionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveAssetFromCollectionResponse"}}}},"403":{"description":"When the user doesn't have permission to access or modify the resource","content":{"application/json":{"example":{"detail":"You do not have permission to access this resource"}}}},"404":{"description":"When there isn't a object with the given ID","content":{"application/json":{"example":{"detail":"Collection ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/speakers":{"get":{"summary":"Get all speakers of an asset","description":"Returns all the speakers of an asset","operationId":"_get_asset_speakers_v1_assets__asset_id__speakers_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpeakersResponse"}}}},"404":{"description":"If there is no asset with that ID","content":{"application/json":{"example":{"detail":"Asset ID not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Creates a speaker in an asset","description":"Adds a speaker","operationId":"_add_speaker_v1_assets__asset_id__speakers_post","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSpeakerPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddSpeakerResponse"}}}},"404":{"description":"If there is no asset with that ID","content":{"application/json":{"example":{"detail":"Asset ID not found"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/speakers/{speaker_id}":{"get":{"summary":"Get a single speaker","description":"Returns a single speaker by its ID","operationId":"_get_asset_speaker_v1_assets__asset_id__speakers__speaker_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"speaker_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Speaker Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSpeakerResponse"}}}},"404":{"description":"If the asset or speaker ID do not exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Modifies a speaker","description":"Modifies a speaker by its ID","operationId":"_modify_speaker_v1_assets__asset_id__speakers__speaker_id__patch","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"speaker_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Speaker Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifySpeakerPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModifySpeakerResponse"}}}},"404":{"description":"If the asset or speaker ID do not exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Deletes a speaker","description":"Deletes a speaker by its ID","operationId":"_delete_speaker_v1_assets__asset_id__speakers__speaker_id__delete","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"speaker_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Speaker Id"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"Speaker can't be deleted: it is associated to an asset","content":{"application/json":{"example":{"detail":"Speaker ID still associated to a segment"}}}},"404":{"description":"If the asset or speaker ID do not exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/audio_tracks":{"get":{"summary":"Get all the audio tracks of an asset","description":"Returns all the extra audio tracks of the given asset.","operationId":"_list_audio_tracks_v1_assets__asset_id__audio_tracks_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"language_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"description":"Filter tracks by language ID","examples":[1],"title":"Language Id"},"description":"Filter tracks by language ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAudioTracksResponse"}}}},"404":{"description":"When the asset doesn't exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/audio_tracks/{audio_track_id}":{"get":{"summary":"Get a single audio track","description":"\"Get a single extra audio track from the given asset.","operationId":"_get_asset_audio_track_v1_assets__asset_id__audio_tracks__audio_track_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"audio_track_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Audio Track Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAudioTrackResponse"}}}},"404":{"description":"When the asset doesn't exist, or the audio track doesn't exist in the asset","content":{"application/json":{"example":{"detail":"The audio track ID 12 doesn't exist in the asset ID 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/audio_tracks/{audio_track_id}/download_url":{"get":{"summary":"Get the download URL for the audio track","description":"Return the download URL for the raw audio generated for this audio track.","operationId":"_gen_download_url_audio_track_v1_assets__asset_id__audio_tracks__audio_track_id__download_url_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"audio_track_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Audio Track Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenDownloadUrlAudioTrackResponse"}}}},"404":{"description":"When the asset or the audio track doesn't exist","content":{"application/json":{"example":{"detail":"Asset ID not found: 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/views":{"post":{"summary":"Creates a filter view","description":"Creates a new filter view in the database for the current user.","operationId":"_add_filter_view_v1_views_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterViewCreatePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddFilterViewResponse"}}}},"422":{"description":"When you don't send any filter when adding a filter.","content":{"application/json":{"example":{"detail":"Filter params should have at least 1 filter."}}}}}},"get":{"summary":"Returns all filter views","description":"Returns all the filter views of the current user, paged based on the query parameters 'page' and 'items'; together with links to the first, previous, last and next pages, and the total count of elements.","operationId":"_list_filter_views_v1_views_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListFilterViewsResponse"}}}},"404":{"description":"If the page number specified is not valid","content":{"application/json":{"example":{"detail":"Page number not found"}}}},"422":{"description":"If the number of items per page exceeds the maximum allowed","content":{"application/json":{"example":{"detail":"Requested 150 items per page exceeds the maximum of 100"}}}}}}},"/v1/views/{view_id}":{"get":{"summary":"Returns a filter view","description":"Returns a filter view information.","operationId":"_get_filter_view_v1_views__view_id__get","parameters":[{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetFilterViewResponse"}}}},"404":{"description":"When the filter view doesn't exist in the user's tenant","content":{"application/json":{"example":{"detail":"Filter ID not found: 2"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Updates a filter view","description":"Updates a filter view.","operationId":"_update_filter_view_v1_views__view_id__patch","parameters":[{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilterViewUpdatePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFilterViewResponse"}}}},"404":{"description":"If the given filter view doesn't exist","content":{"application/json":{"example":{"detail":"Filter ID not found: 2"}}}},"403":{"description":"If the user tries to update a filter view that doesn't belong to them","content":{"application/json":{"example":{"detail":"Not authorized to update this filter view"}}}},"422":{"description":"If filter_params is provided but empty","content":{"application/json":{"example":{"detail":"Filter params should have at least 1 filter."}}}}}},"delete":{"summary":"Deletes a filter view","description":"Deletes a filter view","operationId":"_delete_filter_view_v1_views__view_id__delete","parameters":[{"name":"view_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"View Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"If the given filter view doesn't exist","content":{"application/json":{"example":{"detail":"Filter ID not found: 2"}}}},"403":{"description":"If the user tries to delete a filter view that doesn't belong to them","content":{"application/json":{"example":{"detail":"Not authorized to delete this filter view"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/whitelists":{"get":{"summary":"List all whitelists","description":"List all whitelists accessible to the user.","operationId":"_list_whitelists_v1_whitelists_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWhitelistsResponse"}}}}}},"post":{"summary":"Create a new whitelist","description":"Creates a new whitelist.","operationId":"_create_whitelist_v1_whitelists_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWhitelistPayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWhitelistResponse"}}}},"404":{"description":"When there isn't a template with the given ID","content":{"application/json":{"example":{"detail":"Template ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/whitelists/{whitelist_id}":{"get":{"summary":"Get a whitelist","description":"Get a specific whitelist.","operationId":"_get_whitelist_v1_whitelists__whitelist_id__get","parameters":[{"name":"whitelist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Whitelist Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWhitelistResponse"}}}},"404":{"description":"When there isn't a whitelist with the given ID","content":{"application/json":{"example":{"detail":"Whitelist ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a whitelist","description":"Updates an existing whitelist.","operationId":"_update_whitelist_v1_whitelists__whitelist_id__patch","parameters":[{"name":"whitelist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Whitelist Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWhitelistPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWhitelistResponse"}}}},"404":{"description":"When there isn't a whitelist with the given ID","content":{"application/json":{"example":{"detail":"Whitelist ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a whitelist","description":"Deletes a whitelist.","operationId":"_delete_whitelist_v1_whitelists__whitelist_id__delete","parameters":[{"name":"whitelist_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Whitelist Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When there isn't a whitelist with the given ID","content":{"application/json":{"example":{"detail":"Whitelist ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/assets/{asset_id}/sound_descriptions":{"get":{"summary":"Get sound descriptions","description":"Returns a list of sound descriptions for the specified\nasset with optional filtering and pagination.","operationId":"_get_sound_descriptions_v1_assets__asset_id__sound_descriptions_get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"start_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by minimum start timestamp","title":"Start Ms"},"description":"Filter by minimum start timestamp"},{"name":"end_ms","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by maximum end timestamp","title":"End Ms"},"description":"Filter by maximum end timestamp"},{"name":"sound","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by sound (case-insensitive)","title":"Sound"},"description":"Filter by sound (case-insensitive)"},{"name":"language_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by language ID","title":"Language Id"},"description":"Filter by language ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundDescriptionListResponse"}}}},"404":{"description":"Sound description not found","content":{"application/json":{"example":{"detail":"Sound description not found for this asset"}}}},"422":{"description":"If the number of items per page exceeds the maximum allowed","content":{"application/json":{"example":{"detail":"Requested 150 items per page exceeds the maximum of 100"}}}}}}},"/v1/assets/{asset_id}/sound_descriptions/{description_id}":{"get":{"summary":"Get a specific sound description","description":"Get a specific sound description by ID for an asset","operationId":"_get_sound_description_v1_assets__asset_id__sound_descriptions__description_id__get","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"description_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Description Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SoundDescriptionDetailResponse"}}}},"404":{"description":"Sound description not found","content":{"application/json":{"example":{"detail":"Sound description not found for this asset"}}}},"422":{"description":"If the number of items per page exceeds the maximum allowed","content":{"application/json":{"example":{"detail":"Requested 150 items per page exceeds the maximum of 100"}}}}}},"delete":{"summary":"Delete sound description","description":"Delete a specific sound description","operationId":"_delete_sound_description_v1_assets__asset_id__sound_descriptions__description_id__delete","parameters":[{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Asset Id"}},{"name":"description_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Description Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"Sound description not found","content":{"application/json":{"example":{"detail":"Sound description not found for this asset"}}}},"422":{"description":"If the number of items per page exceeds the maximum allowed","content":{"application/json":{"example":{"detail":"Requested 150 items per page exceeds the maximum of 100"}}}}}}},"/v1/brandings":{"post":{"summary":"Add a new branding","description":"Add a new branding","operationId":"_add_branding_v1_brandings_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddBrandingPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddBrandingResponse"}}}},"409":{"description":"When the branding name is lready in use in this tenant","content":{"application/json":{"example":{"detail":"Branding name already in use for this tenant"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List all brandings for this tenant","description":"List all brandings for this tenant","operationId":"_list_brandings_v1_brandings_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListBrandingsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/brandings/{branding_id}":{"get":{"summary":"Get a branding","description":"Get a branding","operationId":"_get_branding_v1_brandings__branding_id__get","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBrandingResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding with that ID","content":{"application/json":{"example":{"detail":"Branding ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a branding","description":"Update a branding","operationId":"_update_branding_v1_brandings__branding_id__patch","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBrandingPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBrandingResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding with that ID","content":{"application/json":{"example":{"detail":"Branding ID not found: 99"}}}},"409":{"description":"When the branding name is lready in use in this tenant","content":{"application/json":{"example":{"detail":"Branding name already in use for this tenant"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a branding","description":"Delete a branding","operationId":"_delete_branding_v1_brandings__branding_id__delete","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"When the user's tenant doesn't have a branding with that ID","content":{"application/json":{"example":{"detail":"Branding ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_overlays":{"post":{"summary":"Add a new branding overlay","description":"Add a new branding overlay","operationId":"_add_overlay_v1_branding_overlays_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddOverlayPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddOverlayResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List all branding overlays for this tenant","description":"List all branding overlays for this tenant","operationId":"_list_overlays_v1_branding_overlays_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListOverlaysResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_overlays/{overlay_id}/start_upload":{"post":{"summary":"Get the URL to start a multipart upload for a branding overlay","description":"Returns as many URLs as requested to start the multipart upload of the asset used for a\nbranding overlay. The uploaded file keeps its extension; supported formats are a static\nimage (PNG/JPEG) or an alpha video (WebM/MOV).","operationId":"_start_overlay_upload_v1_branding_overlays__overlay_id__start_upload_post","parameters":[{"name":"overlay_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Overlay Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartOverlayUploadPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartOverlayUploadResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding overlay with that ID","content":{"application/json":{"example":{"detail":"BrandingOverlay ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_overlays/{overlay_id}/finish_upload":{"post":{"summary":"Finish a multipart upload for a branding overlay","description":"Finishes an overlay multipart upload, consolidating the different parts in a single file.\n\nThis call should be performed once the client has uploaded all the parts, sending the\nvalue of the \"ETag\" header of each part in the same order that the URLs were provided.\n\nUntil this API call is made the branding overlay will not be available to be used.","operationId":"_finish_overlay_upload_v1_branding_overlays__overlay_id__finish_upload_post","parameters":[{"name":"overlay_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Overlay Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinishOverlayUploadPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinishOverlayUploadResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding overlay with that ID","content":{"application/json":{"example":{"detail":"BrandingOverlay ID not found: 99"}}}},"409":{"description":"If the overlay doesn't have an upload previously started","content":{"application/json":{"example":{"detail":"Overlay 2 doesn't have an upload in progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_overlays/{overlay_id}/upload_jobs/{job_id}":{"get":{"summary":"Get an overlay upload job","description":"Get the info about a job running an overlay upload","operationId":"_get_overlay_upload_job_v1_branding_overlays__overlay_id__upload_jobs__job_id__get","parameters":[{"name":"overlay_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Overlay Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOverlayUploadJobResponse"}}}},"404":{"description":"When either the overlay ID doesn't exist, or it doesn't have a job with that ID","content":{"application/json":{"example":{"detail":"Overlay 1 doesn't have an upload job with ID 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_overlays/{overlay_id}":{"get":{"summary":"Get a branding overlay","description":"Get a branding overlay","operationId":"_get_overlay_v1_branding_overlays__overlay_id__get","parameters":[{"name":"overlay_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Overlay Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOverlayResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding overlay with that ID","content":{"application/json":{"example":{"detail":"BrandingOverlay ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a branding overlay","description":"Update a branding overlay","operationId":"_update_overlay_v1_branding_overlays__overlay_id__patch","parameters":[{"name":"overlay_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Overlay Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOverlayPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOverlayResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding overlay with that ID","content":{"application/json":{"example":{"detail":"BrandingOverlay ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a branding overlay","description":"Delete a branding overlay","operationId":"_delete_overlay_v1_branding_overlays__overlay_id__delete","parameters":[{"name":"overlay_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Overlay Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"When the user's tenant doesn't have a branding overlay with that ID","content":{"application/json":{"example":{"detail":"BrandingOverlay ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_clips":{"post":{"summary":"Add a new branding clip","description":"Add a new branding clip","operationId":"_add_clip_v1_branding_clips_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddClipPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddClipResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List all branding clips for this tenant","description":"List all branding clips for this tenant","operationId":"_list_clips_v1_branding_clips_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListClipsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_clips/{clip_id}":{"get":{"summary":"Get a branding clip","description":"Get a branding clip","operationId":"_get_clip_v1_branding_clips__clip_id__get","parameters":[{"name":"clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Clip Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetClipResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding clip with that ID","content":{"application/json":{"example":{"detail":"BrandingClip ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a branding clip","description":"Update a branding clip","operationId":"_update_clip_v1_branding_clips__clip_id__patch","parameters":[{"name":"clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Clip Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClipPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClipResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding clip with that ID","content":{"application/json":{"example":{"detail":"BrandingClip ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a branding clip","description":"Delete a branding clip","operationId":"_delete_clip_v1_branding_clips__clip_id__delete","parameters":[{"name":"clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Clip Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"When the user's tenant doesn't have a branding clip with that ID","content":{"application/json":{"example":{"detail":"BrandingClip ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_clips/{clip_id}/start_upload":{"post":{"summary":"Get the URL to start a multipart upload for a branding clip","description":"Returns as many URLs as requested to start the multipart upload of a video used for a\nbranding clip. Only videos with MP4/WEBM/MOV extension are allowed.","operationId":"_start_clip_upload_v1_branding_clips__clip_id__start_upload_post","parameters":[{"name":"clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Clip Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartClipUploadPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartClipUploadResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding clip with that ID","content":{"application/json":{"example":{"detail":"BrandingClip ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_clips/{clip_id}/finish_upload":{"post":{"summary":"Finish a multipart upload for a branding clip","description":"Finishes an clip multipart upload, consolidating the different parts in a single file.\n\nThis call should be performed once the client has uploaded all the parts, sending the\nvalue of the \"ETag\" header of each part in the same order that the URLs were provided.\n\nUntil this API call is made the branding clip will not be available to be used.","operationId":"_finish_clip_upload_v1_branding_clips__clip_id__finish_upload_post","parameters":[{"name":"clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Clip Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinishClipUploadPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FinishClipUploadResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding clip with that ID","content":{"application/json":{"example":{"detail":"BrandingClip ID not found: 99"}}}},"409":{"description":"If the clip doesn't have an upload previously started","content":{"application/json":{"example":{"detail":"Clip 2 doesn't have an upload in progress"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_clips/{clip_id}/upload_jobs/{job_id}":{"get":{"summary":"Get an clip upload job","description":"Get the info about a job running a clip upload","operationId":"_get_clip_upload_job_v1_branding_clips__clip_id__upload_jobs__job_id__get","parameters":[{"name":"clip_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Clip Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetClipUploadJobResponse"}}}},"404":{"description":"When either the clip ID doesn't exist, or it doesn't have a job with that ID","content":{"application/json":{"example":{"detail":"Clip 1 doesn't have an upload job with ID 1"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_subtitle_styles":{"post":{"summary":"Add a new branding subtitle style","description":"Add a new branding subtitle style","operationId":"_add_subtitle_style_v1_branding_subtitle_styles_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubtitleStylePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubtitleStyleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List all branding subtitle styles for this tenant","description":"List all branding subtitle styles for this tenant. This view is paginated.","operationId":"_list_subtitle_styles_v1_branding_subtitle_styles_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSubtitleStylesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/branding_subtitle_styles/{style_id}":{"get":{"summary":"Get a branding subtitle style","description":"Get a specific subltitle style","operationId":"_get_subtitle_style_v1_branding_subtitle_styles__style_id__get","parameters":[{"name":"style_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Style Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSubtitleStyleResponse"}}}},"404":{"description":"When the user's tenant doesn't have a subtitle style with that ID","content":{"application/json":{"example":{"detail":"BrandingSubtitleStyle ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a branding subtitle style","description":"Update a branding subtitle style","operationId":"_update_subtitle_style_v1_branding_subtitle_styles__style_id__patch","parameters":[{"name":"style_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Style Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubtitleStylePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubtitleStyleResponse"}}}},"404":{"description":"When the user's tenant doesn't have a subtitle style with that ID","content":{"application/json":{"example":{"detail":"BrandingSubtitleStyle ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a branding subtitle style","description":"Delete a branding subtitle style","operationId":"_delete_subtitle_style_v1_branding_subtitle_styles__style_id__delete","parameters":[{"name":"style_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Style Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"When the user's tenant doesn't have a subtitle style with that ID","content":{"application/json":{"example":{"detail":"BrandingSubtitleStyle ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/brandings/{branding_id}/variants":{"post":{"summary":"Add a new variant to the branding","description":"Add a new variant for an existing branding. Only one variant with the same aspect ratio is\nallowed in each branding","operationId":"_add_variant_v1_brandings__branding_id__variants_post","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVariantPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddVariantResponse"}}}},"409":{"description":"When the selected branding already has a variant with that aspect ratio","content":{"application/json":{"example":{"detail":"A variant with aspect ratio 16:9 already exists for branding 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List all variants for this branding","description":"List all variants for this branding","operationId":"_list_variants_v1_brandings__branding_id__variants_get","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListVariantsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/brandings/{branding_id}/variants/{variant_id}":{"get":{"summary":"Get a branding variant","description":"Get a branding variant by its ID","operationId":"_get_variant_v1_brandings__branding_id__variants__variant_id__get","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetVariantResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding variant with that ID (or it does not belong to the referenced branding ID)","content":{"application/json":{"example":{"detail":"Branding variant ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a branding variant","description":"Update a branding variant","operationId":"_update_variant_v1_brandings__branding_id__variants__variant_id__patch","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVariantPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVariantResponse"}}}},"404":{"description":"When the user's tenant doesn't have a branding variant with that ID (or it does not belong to the referenced branding ID)","content":{"application/json":{"example":{"detail":"Branding variant ID not found: 99"}}}},"409":{"description":"When the selected branding already has a variant with that aspect ratio","content":{"application/json":{"example":{"detail":"A variant with aspect ratio 16:9 already exists for branding 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a variant from certain branding","description":"Delete a branding variant","operationId":"_delete_variant_v1_brandings__branding_id__variants__variant_id__delete","parameters":[{"name":"branding_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Branding Id"}},{"name":"variant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Variant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"When the user's tenant doesn't have a branding with that ID","content":{"application/json":{"example":{"detail":"Branding ID not found: 99"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/external_storages":{"post":{"summary":"Add a new external storage","description":"Adds a new external storage to the system.\n\nThe external storage name must be unique.","operationId":"_add_external_storage_v1_external_storages_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddExternalStoragePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddExternalStorageResponse"}}}},"400":{"description":"When there is a validation error with duplicates names.","content":{"application/json":{"example":{"detail":"External storage name already exists: New storage name"}}}},"409":{"description":"When the validation of the external storage is not the expected.","content":{"application/json":{"example":{"detail":"Incorrect validation for type Azure."}}}},"422":{"description":"When the authentication data provided does not match the required schema for the validating the storage type.","content":{"application/json":{"example":{"detail":"Invalid authentication data for AZURE."}}}}}},"get":{"summary":"List all the external storages","description":"Returns a list of all the external storages in the system.","operationId":"_list_external_storages_v1_external_storages_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExternalStoragesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/external_storages/{external_storage_id}":{"get":{"summary":"Reads an external storage","description":"Get an external storage's information by its ID.","operationId":"_get_external_storage_v1_external_storages__external_storage_id__get","parameters":[{"name":"external_storage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"External Storage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetExternalStorageResponse"}}}},"404":{"description":"When there isn't an external storage with the given ID","content":{"application/json":{"example":{"detail":"External storage ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Updates an external storage","description":"Updates an external storage.","operationId":"_update_external_storage_v1_external_storages__external_storage_id__patch","parameters":[{"name":"external_storage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"External Storage Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExternalStoragePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExternalStorageResponse"}}}},"400":{"description":"When there is a validation error with duplicates names.","content":{"application/json":{"example":{"detail":"External storage name already exists: New storage name"}}}},"404":{"description":"When there isn't an external storage with the given ID","content":{"application/json":{"example":{"detail":"External storage ID not found: 10"}}}},"409":{"description":"When the validation of the external storage is not the expected.","content":{"application/json":{"example":{"detail":"Incorrect validation for type Azure."}}}},"422":{"description":"When the authentication data provided does not match the required schema for the validating the storage type.","content":{"application/json":{"example":{"detail":"Invalid authentication data for AZURE."}}}}}},"delete":{"summary":"Deletes an external storage","description":"Deletes an external storage.","operationId":"_delete_external_storage_v1_external_storages__external_storage_id__delete","parameters":[{"name":"external_storage_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"External Storage Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When there isn't an external storage with the given ID","content":{"application/json":{"example":{"detail":"External storage ID not found: 10"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/channels/{channel_id}":{"get":{"summary":"Get a channel entry by its ID","description":"Returns a channel entry by its ID.\n\nNon-admin users can only access entries belonging to their tenant.","operationId":"_get_channel_v1_channels__channel_id__get","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetChannelResponse"}}}},"404":{"description":"When the channel doesn't exist or user doesn't have access","content":{"application/json":{"example":{"detail":"Channel ID not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/channels":{"get":{"summary":"Get all channel entries for the user's tenant","description":"Returns all channel entries for the user's tenant.","operationId":"_list_channel_v1_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListChannelResponse"}}}}}}},"/v1/channels/{channel_id}/start":{"post":{"summary":"Start a channel","description":"Starts a channel.\n\nOnly for FULL type channels.","operationId":"_start_channel_v1_channels__channel_id__start_post","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelOperationResponse"}}}},"400":{"description":"When the channel is externally managed","content":{"application/json":{"example":{"detail":"Externally managed channels can't be started"}}}},"404":{"description":"When the channel doesn't exist or user doesn't have access","content":{"application/json":{"example":{"detail":"Channel not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"500":{"description":"When the channel operation fails","content":{"application/json":{"example":{"detail":"Channel provider returned an error response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/channels/{channel_id}/stop":{"post":{"summary":"Stop a channel","description":"Stops a channel.\n\nOnly for FULL type channels.","operationId":"_stop_channel_v1_channels__channel_id__stop_post","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelOperationResponse"}}}},"400":{"description":"When the channel is externally managed","content":{"application/json":{"example":{"detail":"Externally managed channels can't be started"}}}},"404":{"description":"When the channel doesn't exist or user doesn't have access","content":{"application/json":{"example":{"detail":"Channel not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"500":{"description":"When the channel operation fails","content":{"application/json":{"example":{"detail":"Channel provider returned an error response"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/channels/{channel_id}/collect_live_clip_jobs":{"post":{"summary":"Create a channel collect media job","description":"Creates a new job to collect media from a channel.\n\nThe media will be collected as a new asset in the user's tenant and processed using the\ndefault tenant's template.","operationId":"_add_collect_live_clip_job_v1_channels__channel_id__collect_live_clip_jobs_post","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCollectLiveClipJobPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddCollectLiveClipJobResponse"}}}},"400":{"description":"When the requested start/end window is invalid or outside the channel DVR window","content":{"application/json":{"example":{"detail":"start is outside the channel DVR window"}}}},"404":{"description":"When the channel doesn't exist or user doesn't have access","content":{"application/json":{"example":{"detail":"Channel ID not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/channels/{channel_id}/collect_live_clip_jobs/{job_id}":{"get":{"summary":"Get a channel collect media job by ID","description":"Returns a channel collect media job by its ID.\n\nNon-admin users can only access jobs belonging to their tenant.","operationId":"_get_collect_live_clip_job_v1_channels__channel_id__collect_live_clip_jobs__job_id__get","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Channel Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCollectLiveClipJobResponse"}}}},"404":{"description":"When the job doesn't exist or user doesn't have access","content":{"application/json":{"example":{"detail":"Job not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/profiles":{"post":{"summary":"Create a social media profile","description":"Create a new social media profile for the current tenant. Profiles must be created before connecting social media accounts to them.","operationId":"_create_profile_v1_social_media_profiles_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateZernioProfilePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateZernioProfileResponse"}}}},"409":{"description":"When a profile with the same ID already exists","content":{"application/json":{"example":{"detail":"A social media profile with this ID already exists"}}}},"503":{"description":"When the social media profile creation call fails","content":{"application/json":{"example":{"detail":"Failed to create social media profile"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"List social media profiles","description":"Return a paginated list of social media profiles belonging to the current tenant.","operationId":"_list_profiles_v1_social_media_profiles_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListZernioProfilesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/profiles/{profile_id}":{"delete":{"summary":"Delete a social media profile","description":"Delete a social media profile and all social media accounts connected to it. Only profiles belonging to the current tenant can be deleted.","operationId":"_delete_profile_v1_social_media_profiles__profile_id__delete","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}}],"responses":{"204":{"description":"Successful Response"},"400":{"description":"When the profile still has connected social media accounts","content":{"application/json":{"example":{"detail":"Profile profile-id has connected accounts. Delete them first."}}}},"404":{"description":"When the profile does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media profile not found: profile-id"}}}},"503":{"description":"When the social media profile deletion call fails","content":{"application/json":{"example":{"detail":"Failed to delete social media profile: profile-id"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"summary":"Update a social media profile name","description":"Update the human-readable name of a social media profile.","operationId":"_update_profile_name_v1_social_media_profiles__profile_id__patch","parameters":[{"name":"profile_id","in":"path","required":true,"schema":{"type":"string","title":"Profile Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateZernioProfileNamePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateZernioProfileNameResponse"}}}},"404":{"description":"When the profile does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media profile not found: profile-id"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/accounts/oauth_url":{"post":{"summary":"Get OAuth URL to connect a social media account","description":"Return the OAuth URL the user must visit to connect a social media account.","operationId":"_get_oauth_url_v1_social_media_accounts_oauth_url_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOAuthUrlPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOAuthUrlResponse"}}}},"404":{"description":"When the specified social media profile does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media profile not found: profile-id"}}}},"422":{"description":"When the tenant has reached its social media accounts limit","content":{"application/json":{"example":{"detail":"Social media accounts limit reached (4)"}}}},"503":{"description":"When the social media service fails to return an OAuth URL","content":{"application/json":{"example":{"detail":"Failed to generate account connection URL"}}}}}}},"/v1/social_media/accounts":{"get":{"summary":"List connected social media accounts","description":"Return a paginated list of social media accounts connected by the user's tenant.","operationId":"_list_accounts_v1_social_media_accounts_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialMediaAccountsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/accounts/{account_id}":{"get":{"summary":"Get a social media account by ID","description":"Return a social media account by its ID.","operationId":"_get_account_v1_social_media_accounts__account_id__get","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSocialMediaAccountResponse"}}}},"404":{"description":"When the account does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media account not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a connected social media account","description":"Delete a connected social media account.\n\nRemoves the account from the database and calls the provider API to disconnect it.\nOnly accounts belonging to the user's tenant can be deleted.","operationId":"_delete_account_v1_social_media_accounts__account_id__delete","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Account Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When the account does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media account not found: 00000000-0000-0000-0000-000000000000"}}}},"503":{"description":"When the social media disconnection call fails","content":{"application/json":{"example":{"detail":"Failed to disconnect social media account: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/posts/upload_jobs/{job_id}":{"get":{"summary":"Check social media upload job status","description":"Check the status of a social media upload job.\n\nReturns the current state of the job.  When `state` is `finished_ok` the response\nalso includes the `post_id` of the created `SocialMediaPost`.","operationId":"_check_upload_job_v1_social_media_posts_upload_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckUploadJobResponse"}}}},"404":{"description":"When the job does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Upload job not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/posts":{"get":{"summary":"List social media posts","description":"Return a paginated list of social media posts for the user's tenant.\n\nOptionally filter by `status` to list only posts in a given publication state\n(`pending`, `published` or `failed`), or by `social_media_account_id` to list\nonly posts published by a specific connected account.","operationId":"_list_posts_v1_social_media_posts_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/SocialMediaPostStatus"},{"type":"null"}],"title":"Status"}},{"name":"social_media_account_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Social Media Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialMediaPostsResponse"}}}},"404":{"description":"When filtering by `social_media_account_id` and the account does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media account not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/social_media/posts/{post_id}":{"get":{"summary":"Get a social media post by ID","description":"Return a social media post by its ID.\n\nUsers can only access posts belonging to their tenant.","operationId":"_get_post_v1_social_media_posts__post_id__get","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Post Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSocialMediaPostResponse"}}}},"404":{"description":"When the post does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media post not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete a social media post","description":"Delete a social media post.\n\nRemoves the post from the database. Only posts belonging\nto the user's tenant can be deleted.","operationId":"_delete_post_v1_social_media_posts__post_id__delete","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Post Id"}}],"responses":{"204":{"description":"Successful Response"},"404":{"description":"When the post does not exist or belongs to another tenant","content":{"application/json":{"example":{"detail":"Social media post not found: 00000000-0000-0000-0000-000000000000"}}}},"422":{"description":"When trying to delete an already published post","content":{"application/json":{"example":{"detail":"Cannot delete published post: 00000000-0000-0000-0000-000000000000"}}}},"503":{"description":"When the deletion call fails","content":{"application/json":{"example":{"detail":"Failed to delete social media post: 00000000-0000-0000-0000-000000000000"}}}}}}},"/v1/workflow_triggers/{workflow_trigger_id}":{"get":{"summary":"Get a workflow trigger by ID","description":"Return a workflow trigger by its ID.","operationId":"_get_workflow_trigger_v1_workflow_triggers__workflow_trigger_id__get","parameters":[{"name":"workflow_trigger_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Workflow Trigger Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkflowTriggerResponse"}}}},"404":{"description":"If the workflow trigger does not exist","content":{"application/json":{"example":{"detail":"WorkflowTrigger ID not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workflow_triggers":{"get":{"summary":"List workflow triggers","description":"Return a paginated list of workflow triggers.","operationId":"_list_workflow_triggers_v1_workflow_triggers_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}},{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/WorkflowName"},{"type":"null"}],"title":"Workflow Id"}},{"name":"event_id","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ApiEventName"},{"type":"null"}],"title":"Event Id"}},{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkflowTriggersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tts_voices/{tts_voice_id}":{"get":{"summary":"Gets a TTS voice from its ID.","description":"Returns a TTS Voice from its ID.","operationId":"_get_tts_voice_v1_tts_voices__tts_voice_id__get","parameters":[{"name":"tts_voice_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tts Voice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTTSVoiceResponse"}}}},"404":{"description":"If the tts voice does not exist","content":{"application/json":{"example":{"detail":"TTSVoice ID not found: 01234567-89ab-cdef-0123-456789abcdef"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tts_voices":{"get":{"summary":"List TTS voices","description":"Returns a paginated list of TTS voices.","operationId":"_list_tts_voices_v1_tts_voices_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"items","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Items"}},{"name":"name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},{"name":"language_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Language Id"}},{"name":"gender","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/VoiceGender"},{"type":"null"}],"title":"Gender"}},{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TTSVoiceTier"},{"type":"null"}],"title":"Tier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTTSVoicesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccountHealthStatus":{"type":"string","enum":["CONNECTED","NEEDS_RECONNECTION","HEALTH_CHECK_ERROR"],"title":"AccountHealthStatus","description":"Connection health of a social media account.\n\n`HEALTH_CHECK_ERROR` means we could not determine the account's health (e.g. the\nZernio health check failed), so the status is genuinely unknown and must not be\ninterpreted as either connected or needing reconnection."},"AddAssetMetadataResponse":{"properties":{"overdue_plan_seconds":{"type":"integer","title":"Overdue Plan Seconds"},"deprecated":{"additionalProperties":{"type":"string"},"type":"object","title":"Deprecated"}},"type":"object","required":["overdue_plan_seconds","deprecated"],"title":"AddAssetMetadataResponse"},"AddAssetPayload":{"properties":{"filename":{"type":"string","title":"Filename"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id"},"collection_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Collection Id"},"language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Language Id"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"External ID for the user to identify the asset. Unique for each tenant"},"mc_model":{"$ref":"#/components/schemas/AssetPipeline","description":"The pipeline used to process this asset","default":"normal"},"encode_passthrough":{"type":"boolean","title":"Encode Passthrough","description":"Enable passthrough encoding for this asset","default":false}},"additionalProperties":false,"type":"object","required":["filename"],"title":"AddAssetPayload","examples":[{"collection_id":"00000000-0000-0000-0000-000000000001","filename":"test_filename.mp4","template_id":"00000000-0000-0000-0000-000000000001"}]},"AddAssetResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullAssetForResponse"},"metadata":{"$ref":"#/components/schemas/AddAssetMetadataResponse"}},"type":"object","required":["data","metadata"],"title":"AddAssetResponse","examples":[{"data":{"asset_type":"video_audio_cmaf","base_stream_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/HLS/base.m3u8","created_at":"2026-09-01T10:26:55.817141Z","creator_id":"00000000-0000-0000-0000-000000000001","duration_ms":100000,"encode_passthrough":false,"external_id":"Example_external_ID","filename":"asset_filename.mp4","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","mc_model":"normal","mp4_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/asset_mp4_base.mp4","poster_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/poster.jpeg","processing_steps_status":[{"duration_seconds":0,"state":"started","step":"encode"}],"speakers":[],"state":"created","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:55.817145Z"},"metadata":{"deprecated":{},"overdue_plan_seconds":0}}]},"AddAssetToCollectionPayload":{"properties":{"asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Asset Ids","description":"List of asset IDs to add to the collection"}},"additionalProperties":false,"type":"object","required":["asset_ids"],"title":"AddAssetToCollectionPayload"},"AddAssetToCollectionResponse":{"properties":{"created":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Created","description":"List of asset IDs that were successfully added"},"not_created":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Not Created","description":"List of asset IDs that were not added due to errors"}},"type":"object","required":["created","not_created"],"title":"AddAssetToCollectionResponse"},"AddBrandingPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the branding"},"subtitle_style_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitle Style Id","description":"ID of the subtitle style used in this branding"},"safe_area_top_pct":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Safe Area Top Pct","description":"Top safe-area inset as a percentage of the frame height (0 = no margin)","default":0.0},"safe_area_right_pct":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Safe Area Right Pct","description":"Right safe-area inset as a percentage of the frame width (0 = no margin)","default":0.0},"safe_area_bottom_pct":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Safe Area Bottom Pct","description":"Bottom safe-area inset as a percentage of the frame height (0 = no margin)","default":0.0},"safe_area_left_pct":{"type":"number","maximum":5.0,"minimum":0.0,"title":"Safe Area Left Pct","description":"Left safe-area inset as a percentage of the frame width (0 = no margin)","default":0.0}},"additionalProperties":false,"type":"object","required":["name"],"title":"AddBrandingPayload","examples":[{"name":"My branding","subtitle_style_id":"00000000-0000-0000-0000-000000000001"}]},"AddBrandingResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingForResponse"}},"type":"object","required":["data"],"title":"AddBrandingResponse","examples":[{"data":{"id":"00000000-0000-0000-0000-000000000001","name":"Example name","safe_area_bottom_pct":0.0,"safe_area_left_pct":0.0,"safe_area_right_pct":0.0,"safe_area_top_pct":0.0,"subtitle_style_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"AddClipPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the branding clip"},"file_name":{"type":"string","title":"File Name","description":"Name of the file used in the clip"}},"additionalProperties":false,"type":"object","required":["name","file_name"],"title":"AddClipPayload","examples":[{"file_name":"Example_filename","name":"My branding clip"}]},"AddClipResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicBrandingClipForResponse"}},"type":"object","required":["data"],"title":"AddClipResponse","examples":[{"data":{"file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"AddCollectLiveClipJobPayload":{"properties":{"start":{"type":"string","format":"date-time","title":"Start","description":"The channel time to be used as the starting point for the new asset"},"end":{"type":"string","format":"date-time","title":"End","description":"The channel time to be used as the finishing point for the new asset"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"Optional external ID to assign to the asset created by this job"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional custom name for the asset created by this job"}},"type":"object","required":["start","end"],"title":"AddCollectLiveClipJobPayload"},"AddCollectLiveClipJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/ChannelCollectLiveClipJob"}},"type":"object","required":["data"],"title":"AddCollectLiveClipJobResponse","examples":[{"data":{"channel_id":"abcdef01-2345-6789-abcd-ef0123456789","created_at":"2025-01-20T12:00:00Z","end":"2025-01-20T13:00:00Z","id":"01234567-89ab-cdef-0123-456789abcdef","start":"2025-01-20T12:30:00Z","state":"queued","tenant_id":"fedcba98-7654-3210-fedc-ba9876543210"}}]},"AddCollectionPayload":{"properties":{"name":{"type":"string","title":"Name"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"The ID of the template to associate. Only use for sugestions is MediaCopilot front."}},"additionalProperties":false,"type":"object","required":["name"],"title":"AddCollectionPayload"},"AddCollectionResponse":{"properties":{"data":{"$ref":"#/components/schemas/CollectionForResponse"}},"type":"object","required":["data"],"title":"AddCollectionResponse","examples":[{"data":{"cover_info":{"assets_info":[]},"created_at":"2026-09-01T10:26:57.584767Z","id":"00000000-0000-0000-0000-000000000001","name":"Sample Collection","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","thumbnails":[],"updated_at":"2026-09-01T10:26:57.584772Z"}}]},"AddExternalStoragePayload":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the new external storage"},"type":{"$ref":"#/components/schemas/ExternalStorageType","description":"The type of the external storage"},"destination":{"additionalProperties":true,"type":"object","title":"Destination","description":"Destination data as JSON. Required fields depend on the type:\n- AWS_S3: `bucket_name`, `region`.\n- AZURE: `blob_url`.\n- GCP_STORAGE: `bucket_name`."},"export_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Path","description":"The specific path to export the data. It can follow a template. Available keys: `{asset_id}`, `{asset_external_id}`, `{video_clip_id}`. Ex: `/path/{asset_id}`"},"authentication_data":{"additionalProperties":true,"type":"object","title":"Authentication Data","description":"Authentication data as JSON. Required fields depend on the type:\n- AWS_S3: `iam_role_arn` (to be assumed in the customer's account).\n- AZURE: `sas_token` (Shared Access Signature for authentication).\n- GCP_STORAGE: `credentials` (JSON service account credentials)."}},"additionalProperties":false,"type":"object","required":["name","type"],"title":"AddExternalStoragePayload","examples":[{"authentication_data":{"token":"secret_token"},"destination":{"bucket":"destination_bucket"},"export_path":"/personal/repository","name":"New storage name","type":"DUMMY"}]},"AddExternalStorageResponse":{"properties":{"data":{"$ref":"#/components/schemas/ExternalStorageForResponse","description":"The created external storage"}},"type":"object","required":["data"],"title":"AddExternalStorageResponse","examples":[{"data":{"destination":{"bucket":"destination_bucket"},"export_path":"/personal/repository","id":"00000000-0000-0000-0000-000000000001","name":"New storage name","type":"DUMMY"}}]},"AddFilterViewResponse":{"properties":{"data":{"$ref":"#/components/schemas/FilterForResponse"}},"type":"object","required":["data"],"title":"AddFilterViewResponse","examples":[{"data":{"created_at":"2025-06-19T10:30:00Z","filter_params":[{"name":"classification","operator":"ilike","value":"%.mp4"}],"id":"00000000-0000-0000-0000-000000000001","name":"MP4 Files Only","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2025-06-19T10:30:00Z","user_id":"00000000-0000-0000-0000-000000000001"}}]},"AddOverlayPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the branding overlay"},"file_name":{"type":"string","title":"File Name","description":"Name of the image used for the overlay. Optional"}},"additionalProperties":false,"type":"object","required":["name","file_name"],"title":"AddOverlayPayload","examples":[{"name":"My branding overlay"}]},"AddOverlayResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicBrandingOverlayForResponse"}},"type":"object","required":["data"],"title":"AddOverlayResponse","examples":[{"data":{"file_name":"example_filename.jpeg","id":"00000000-0000-0000-0000-000000000001","name":"Example overlay name","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"AddProcessVoiceOverJobPayload":{"properties":{"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"Target language of the requested voice over."},"original_voice_volume":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Original Voice Volume","description":"Volume applied to the original voice track.","default":0},"background_volume":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Background Volume","description":"Volume applied to the background track.","default":100},"synthetic_voice_volume":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Synthetic Voice Volume","description":"Volume applied to the synthetic voice track.","default":100},"speakers_config":{"$ref":"#/components/schemas/SpeakersConfig","description":"Selected voice per speaker; keys are the speaker IDs in the transcription and values hold the selected TTS voice. It must contain exactly one voice for every speaker present in the transcription."}},"additionalProperties":false,"type":"object","required":["language_id","speakers_config"],"title":"AddProcessVoiceOverJobPayload","description":"Payload class for create process voice over job API call.","examples":[{"background_volume":100,"language_id":"00000000-0000-0000-0000-000000000002","original_voice_volume":100,"speakers_config":{"00000000-0000-0000-0000-000000000001":{"voice_id":"00000000-0000-0000-0000-000000000005"}},"synthetic_voice_volume":100}]},"AddProcessVoiceOverJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/ProcessVoiceOverJobForResponse"}},"type":"object","required":["data"],"title":"AddProcessVoiceOverJobResponse","description":"Response class for create process voice over job API call.","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-00000000000a","state":"queued"}}]},"AddSegmentsPayload":{"properties":{"segments":{"items":{"$ref":"#/components/schemas/AddTranscriptionSegment"},"type":"array","title":"Segments"}},"additionalProperties":false,"type":"object","required":["segments"],"title":"AddSegmentsPayload"},"AddSegmentsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SegmentForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"AddSegmentsResponse","examples":[{"data":[{"end_ms":1000,"id":"00000000-0000-0000-0000-000000000001","speaker_id":"00000000-0000-0000-0000-000000000001","start_ms":0,"text":"segment one","translation_pending":false},{"end_ms":2000,"id":"00000000-0000-0000-0000-000000000002","speaker_id":"00000000-0000-0000-0000-000000000001","start_ms":1000,"text":"segment two","translation_pending":false}]}]},"AddSpeakerPayload":{"properties":{"name":{"type":"string","title":"Name"}},"additionalProperties":false,"type":"object","required":["name"],"title":"AddSpeakerPayload"},"AddSpeakerResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullSpeakerForResponse"}},"type":"object","required":["data"],"title":"AddSpeakerResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","name":"example_name"}}]},"AddTemplatePayload":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the new template"},"domain_dictionary_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Domain Dictionary Ids","description":"List of domain dictionary IDs"},"blacklist_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Blacklist Ids","description":"List of blacklist IDs"},"whitelist_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Whitelist Ids","description":"List of whitelist IDs"},"translation_language_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Translation Language Ids","description":"List of translation language IDs"},"voice_over_language_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Voice Over Language Ids","description":"List of voice over language IDs","deprecated":true},"enabled_ocr":{"type":"boolean","title":"Enabled Ocr","description":"Whether OCR (Optical Character Recognition) is enabled for this template","default":false},"voice_over_config":{"$ref":"#/components/schemas/VoiceOverConfig","description":"Voice over additional configuration","deprecated":true}},"additionalProperties":false,"type":"object","required":["name"],"title":"AddTemplatePayload","examples":[{"enabled_ocr":false,"name":"New template name"}]},"AddTemplateResponse":{"properties":{"data":{"$ref":"#/components/schemas/SimpleTemplateForResponse","description":"The created template"}},"type":"object","required":["data"],"title":"AddTemplateResponse"},"AddTranscriptionSegment":{"properties":{"text":{"type":"string","title":"Text","description":"The segment text"},"start_ms":{"type":"integer","title":"Start Ms","description":"The start time of the segment from the start of the asset"},"end_ms":{"type":"integer","title":"End Ms","description":"The end time of the segment from the start of the asset"},"speaker":{"type":"string","title":"Speaker","description":"The speaker identifier of this segment"},"original_segment_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Original Segment Id","description":"ID of the segment this segment is translated from (None if it is original)"}},"type":"object","required":["text","start_ms","end_ms","speaker"],"title":"AddTranscriptionSegment"},"AddTranslationJobPayload":{"properties":{"language_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Language Ids"}},"additionalProperties":false,"type":"object","required":["language_ids"],"title":"AddTranslationJobPayload"},"AddTranslationJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/TranslationJobForResponse"}},"type":"object","required":["data"],"title":"AddTranslationJobResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000003","created_at":"2026-09-01T10:26:57.735464Z","id":"00000000-0000-0000-0000-000000000001","state":"queued","target_languages":[{"bcp_47":"es-ES","id":"00000000-0000-0000-0000-000000000002","iso_639_1":"es","name":"Spanish","rtl":false,"support_transcription":true,"voice_over_tier":2}],"updated_at":"2026-09-01T10:26:57.735469Z"}}]},"AddVariantPayload":{"properties":{"aspect_ratio":{"$ref":"#/components/schemas/BrandingAspectRatio","description":"Aspect ratio used in this variant. Two variants of the same branding can't have the same aspect ratio"},"overlay_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Overlay Id","description":"ID of the overlay used in this branding, if any"},"intro_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Intro Id","description":"ID of the clip used as intro in this branding, if any"},"outro_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Outro Id","description":"ID of the clip used as outro in this branding, if any"},"intro_overlap_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intro Overlap Ms","description":"Milliseconds the intro overlaps the start of the content (0 = no overlap)","default":0},"outro_overlap_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Outro Overlap Ms","description":"Milliseconds the outro overlaps the end of the content (0 = no overlap)","default":0}},"additionalProperties":false,"type":"object","required":["aspect_ratio"],"title":"AddVariantPayload","examples":[{"aspect_ratio":"16:9"}]},"AddVariantResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingVariantForResponse"}},"type":"object","required":["data"],"title":"AddVariantResponse","examples":[{"data":{"aspect_ratio":"16:9","branding_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","intro_overlap_ms":0,"outro_overlap_ms":0,"tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"AddVideoClipsPayload":{"properties":{"video_clips":{"items":{"$ref":"#/components/schemas/VideoClipPayload"},"type":"array","title":"Video Clips","description":"List of video clips to be created"}},"type":"object","required":["video_clips"],"title":"AddVideoClipsPayload","examples":[{"video_clips":[{"aspect_ratio_x":16,"aspect_ratio_y":9,"autoframing":true,"branding_id":"00000000-0000-0000-0000-00000000007b","custom_autocenter":[{"center_x_pct":40.0,"center_y_pct":50.0,"height_pct":0.0,"start_frame":75,"start_time_ms":1000},{"center_x_pct":60.0,"center_y_pct":35.0,"height_pct":20.0,"start_frame":175,"start_time_ms":3000}],"delete_autocenter":[1260,5700,78970],"delete_autocenter_frames":[25,75,175],"end_frame":275,"end_ms":5000,"start_frame":0,"start_ms":0,"with_sound_descriptions":true}]},{"video_clips":[{"aspect_ratio_x":4,"aspect_ratio_y":3,"autoframing":false,"custom_autocenter":[],"delete_autocenter":[],"delete_autocenter_frames":[],"start_ms":500,"subtitles_language_id":"00000000-0000-0000-0000-00000000002a","with_sound_descriptions":false}]}]},"ApiEventName":{"type":"string","enum":["dummy","on_clip_rendered","on_asset_ready"],"title":"ApiEventName"},"AssetCoverInfo":{"properties":{"asset_type":{"$ref":"#/components/schemas/AssetType","description":"Type of the asset (audio only, video&audio, ...)"},"poster_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Poster Url","description":"URL of the poster image for the asset. If the asset is audio only, this url will be null"}},"type":"object","required":["asset_type","poster_url"],"title":"AssetCoverInfo"},"AssetMetadataFieldForResponse":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the field"},"value":{"additionalProperties":true,"type":"object","title":"Value","description":"The field's value, a free-form JSON"},"id":{"type":"string","format":"uuid","title":"Id"}},"type":"object","required":["name","value","id"],"title":"AssetMetadataFieldForResponse"},"AssetPipeline":{"type":"string","enum":["normal","turbo"],"title":"AssetPipeline"},"AssetType":{"type":"string","enum":["undefined","video_audio_hls","video_audio_cmaf","audio_only","video_only"],"title":"AssetType"},"AssetVideoSegment":{"properties":{"type":{"type":"string","const":"asset","title":"Type","default":"asset"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The video source asset"},"duration_frames":{"type":"integer","title":"Duration Frames","description":"The number of frames to use from the source"},"start_from":{"type":"integer","title":"Start From","description":"The starting frame from the source"},"volume":{"type":"integer","title":"Volume","description":"The volume of the original source audio track, from 1 to 100.\nOnly applies if the video track of this segment is not muted."},"add_autocenter":{"items":{"$ref":"#/components/schemas/VideoAddAutocenter-Output"},"type":"array","title":"Add Autocenter","description":"List of autocenter points to add to the automatically generated autocenter points"},"delete_autocenter":{"items":{"$ref":"#/components/schemas/VideoDeleteAutocenter-Output"},"type":"array","title":"Delete Autocenter","description":"List of autocenter points to delete from the automatically generated autocenter points"},"transition_type":{"$ref":"#/components/schemas/VideoSegmentTransitionType","description":"The type of transition between this segment and the next; it have no effect in the last segment.\n\nThe accepted transitions are:\n  - `none`: No transition.  - `fade`: The incoming segment fades in over this one.  - `slide-left`: The incoming segment pushes out this one left to right.  - `slide-right`: The incoming segment pushes out this one right to left.  - `wipe-left`: The incoming segment slides over this one left to right.  - `wipe-right`: The incoming segment slides over this one right to left.","default":"none"},"transition_duration_frames":{"type":"integer","title":"Transition Duration Frames","description":"The duration of the transition from this segment to the next one.\nApplies to all transition types except `none`.","default":0}},"additionalProperties":false,"type":"object","required":["asset_id","duration_frames","start_from","volume"],"title":"AssetVideoSegment"},"AssetVideoSegmentForRequest":{"properties":{"meta_parent_model":{"anyOf":[{"$ref":"#/components/schemas/SQLModel"},{"$ref":"#/components/schemas/AssetVideoSegmentForRequest"},{"type":"null"}],"title":"Meta Parent Model"},"meta_parent_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Parent Key"},"type":{"anyOf":[{"type":"string","const":"asset"},{"type":"null"}],"title":"Type","default":"asset"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The video source asset"},"duration_frames":{"type":"integer","title":"Duration Frames","description":"The number of frames to use from the source"},"start_from":{"type":"integer","title":"Start From","description":"The starting frame from the source"},"volume":{"type":"integer","title":"Volume","description":"Volume of the original audio track, from 1 to 100","default":100},"add_autocenter":{"items":{"$ref":"#/components/schemas/VideoAddAutocenter-Input"},"type":"array","title":"Add Autocenter","description":"List of autocenter points to add to the automatically generated autocenter points"},"delete_autocenter":{"items":{"$ref":"#/components/schemas/VideoDeleteAutocenter-Input"},"type":"array","title":"Delete Autocenter","description":"List of autocenter points to delete from the automatically generated autocenter points"},"transition_type":{"$ref":"#/components/schemas/VideoSegmentTransitionType","description":"The type of transition between this segment and the next; it have no effect in the last segment.\n\nThe accepted transitions are:\n  - `none`: No transition.  - `fade`: The incoming segment fades in over this one.  - `slide-left`: The incoming segment pushes out this one left to right.  - `slide-right`: The incoming segment pushes out this one right to left.  - `wipe-left`: The incoming segment slides over this one left to right.  - `wipe-right`: The incoming segment slides over this one right to left.","default":"none"},"transition_duration_frames":{"type":"integer","title":"Transition Duration Frames","description":"The duration of the transition from this segment to the next one.\nApplies to all transition types except `none`.","default":0}},"additionalProperties":false,"type":"object","required":["asset_id","duration_frames","start_from"],"title":"AssetVideoSegmentForRequest","description":"A segment that references an existing asset.","examples":[{"asset_id":"550e8400-e29b-41d4-a716-446655440000","duration_frames":150,"start_from":0,"transition_duration_frames":10,"transition_type":"fade","type":"asset","volume":100}]},"AsyncExportJobResponse":{"properties":{"job_id":{"type":"string","format":"uuid","title":"Job Id"},"state":{"$ref":"#/components/schemas/JobState"}},"type":"object","required":["job_id","state"],"title":"AsyncExportJobResponse","examples":[{"job_id":"00000000-0000-0000-0000-000000000001","state":"created"},{"job_id":"00000000-0000-0000-0000-000000000002","state":"queued"}]},"AudioTrackDownloadUrl":{"properties":{"url":{"type":"string","title":"Url"}},"type":"object","required":["url"],"title":"AudioTrackDownloadUrl"},"AutocenterForResponse":{"properties":{"start_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Frame","description":"Frame at which this autocenter starts"},"center_x_pct":{"type":"number","title":"Center X Pct","description":"Horizontal center of the crop, as a percentage of the frame width"},"center_y_pct":{"type":"number","title":"Center Y Pct","description":"Vertical center of the crop, as a percentage of the frame height","default":50.0},"height_pct":{"type":"number","title":"Height Pct","description":"Crop height, as a percentage of the frame height","default":0.0},"start_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Time Ms","description":"Time at which this autocenter starts, in milliseconds"},"new_scene":{"type":"boolean","title":"New Scene","description":"Whether this autocenter starts a new scene. Autocenters within the same scene may be panned between, while a new scene marks a cut with no panning from the previous autocenter","default":false}},"type":"object","required":["center_x_pct"],"title":"AutocenterForResponse"},"AutocenterResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/AutocenterForResponse"},"type":"array","title":"Data","description":"Autocenter information including start time and horizontal center percentage"}},"type":"object","required":["data"],"title":"AutocenterResponse"},"BlacklistForResponse":{"properties":{"name":{"type":"string","title":"Name"},"words":{"items":{"type":"string"},"type":"array","title":"Words","default":[]},"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"The language of the blacklisted words"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant to which this blacklist belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Blacklist dictionary ID"}},"type":"object","required":["name","language_id","tenant_id","id"],"title":"BlacklistForResponse"},"BoundingBoxPayload":{"properties":{"x":{"type":"integer","title":"X","description":"X coordinate of the bounding box"},"y":{"type":"integer","title":"Y","description":"Y coordinate of the bounding box"},"width":{"type":"integer","title":"Width","description":"Width of the bounding box"},"height":{"type":"integer","title":"Height","description":"Height of the bounding box"}},"type":"object","required":["x","y","width","height"],"title":"BoundingBoxPayload"},"BrandingAspectRatio":{"type":"string","enum":["9:16","1:1","4:5","16:9","4:3","3:4"],"title":"BrandingAspectRatio"},"BrandingClipUploadJobForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"clip_id":{"type":"string","format":"uuid","title":"Clip Id"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"state":{"$ref":"#/components/schemas/JobState"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["id","clip_id","tenant_id","state","created_at","updated_at","started_at","finished_at"],"title":"BrandingClipUploadJobForResponse"},"BrandingForResponse":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the branding"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant this branding belongs to"},"subtitle_style_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitle Style Id","description":"ID of the subtitle style this branding uses"},"safe_area_top_pct":{"type":"number","title":"Safe Area Top Pct","description":"Top safe-area inset as a percentage of the frame height (0 = no margin)","default":0.0},"safe_area_right_pct":{"type":"number","title":"Safe Area Right Pct","description":"Right safe-area inset as a percentage of the frame width (0 = no margin)","default":0.0},"safe_area_bottom_pct":{"type":"number","title":"Safe Area Bottom Pct","description":"Bottom safe-area inset as a percentage of the frame height (0 = no margin)","default":0.0},"safe_area_left_pct":{"type":"number","title":"Safe Area Left Pct","description":"Left safe-area inset as a percentage of the frame width (0 = no margin)","default":0.0},"id":{"type":"string","format":"uuid","title":"Id","description":"Branding ID"}},"type":"object","required":["name","tenant_id","id"],"title":"BrandingForResponse"},"BrandingOverlayUploadJobForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"overlay_id":{"type":"string","format":"uuid","title":"Overlay Id"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"state":{"$ref":"#/components/schemas/JobState"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At"}},"type":"object","required":["id","overlay_id","tenant_id","state","created_at","updated_at","started_at","finished_at"],"title":"BrandingOverlayUploadJobForResponse"},"BrandingSubtitleStyleForResponse":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the subtitle style"},"font_family":{"type":"string","title":"Font Family","description":"Name of the font used for the subtitle"},"font_size_px":{"type":"integer","title":"Font Size Px","description":"Font size in pixels","default":26},"font_weight":{"type":"integer","title":"Font Weight","description":"Thickness of the subtitle font","default":600},"line_height":{"type":"number","title":"Line Height","description":"Height of the subtitle line","default":1.2},"vertical_position_pct":{"type":"number","title":"Vertical Position Pct","description":"Vertical position for the subtitles in percentage of total video height","default":0.1},"text_color":{"type":"string","title":"Text Color","description":"Hexadecimal value for the font color"},"shadow_blur":{"type":"number","title":"Shadow Blur","description":"Shadow blur","default":0.0},"shadow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shadow Color","description":"Hexadecimal value for the shadow color"},"shadow_opacity_pct":{"type":"number","title":"Shadow Opacity Pct","description":"Opacity of the shadow in percentage","default":1},"shadow_offset_x_px":{"type":"integer","title":"Shadow Offset X Px","description":"Offset of the shadow in the X axis in pixels","default":1},"shadow_offset_y_px":{"type":"integer","title":"Shadow Offset Y Px","description":"Offset of the shadow in the Y axis in pixels","default":1},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color","description":"Hexadecimal value for the background color"},"background_opacity":{"type":"number","title":"Background Opacity","description":"Opacity of the background (from 0 to 1)","default":0.0},"stroke_color":{"type":"string","title":"Stroke Color","description":"Hexadecimal value for the stroke color","default":"#000000"},"stroke_thickness_px":{"type":"integer","title":"Stroke Thickness Px","description":"Thickness of the stroke, in pixels","default":0},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant to which this subtitle style belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Branding subtitle style ID"}},"type":"object","required":["name","font_family","text_color","tenant_id","id"],"title":"BrandingSubtitleStyleForResponse"},"BrandingVariantForResponse":{"properties":{"aspect_ratio":{"$ref":"#/components/schemas/BrandingAspectRatio","description":"Aspect ratio used in the branding variant. Only one variant of each branding can have the same aspect ratio"},"branding_id":{"type":"string","format":"uuid","title":"Branding Id","description":"ID of the branding to which this variant belongs"},"overlay_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Overlay Id","description":"ID of the overlay used for this variant"},"intro_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Intro Id","description":"ID of the clip used as intro for this variant"},"outro_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Outro Id","description":"ID of the clip used as outro for this variant"},"intro_overlap_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intro Overlap Ms","description":"Milliseconds the intro overlaps the start of the content (0 = no overlap)","default":0},"outro_overlap_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Outro Overlap Ms","description":"Milliseconds the outro overlaps the end of the content (0 = no overlap)","default":0},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant to which this branding belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Branding variant ID"}},"type":"object","required":["aspect_ratio","branding_id","tenant_id","id"],"title":"BrandingVariantForResponse"},"CameraShootForResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Camera shoot ID; cannot be null"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"Reference to the associated asset in the assets table"},"start_ms":{"type":"integer","title":"Start Ms","description":"Timestamp of the camera shoot's start, measured in milliseconds since epoch"},"end_ms":{"type":"integer","title":"End Ms","description":"Timestamp of the camera shoot's end, measured in milliseconds since epoch"},"start_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Frame","description":"Frame of the camera shoot's start."},"end_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Frame","description":"Frame of the camera shoot's end."},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time of creation"}},"type":"object","required":["asset_id","start_ms","end_ms"],"title":"CameraShootForResponse"},"CameraShootResponsePayload":{"properties":{"camera_shoots":{"items":{"$ref":"#/components/schemas/CameraShootForResponse"},"type":"array","title":"Camera Shoots","description":"All the camera shoots of a specific asset."}},"type":"object","required":["camera_shoots"],"title":"CameraShootResponsePayload"},"ChannelCollectLiveClipJob":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"The job ID"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"The tenant ID this jobs belongs to"},"channel_id":{"type":"string","format":"uuid","title":"Channel Id","description":"the channel ID where the media will be taken from"},"asset_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Asset Id","description":"The asset ID created by this job; only have a value if the job finished successfully"},"start":{"type":"string","format":"date-time","title":"Start","description":"The channel time to be used as the starting point for the new asset"},"end":{"type":"string","format":"date-time","title":"End","description":"The channel time to be used as the finishing point for the new asset"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id","description":"Optional external ID to assign to the asset created by this job"},"state":{"$ref":"#/components/schemas/JobState","description":"The current state of the job"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"The date and time when this job was created"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At","description":"The date and time when this job started its processing"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At","description":"The date and time when this job finished its processing"}},"type":"object","required":["id","tenant_id","channel_id","asset_id","start","end","state","created_at","started_at","finished_at"],"title":"ChannelCollectLiveClipJob"},"ChannelForUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique ID of the channel"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant this channel belongs to"},"name":{"type":"string","title":"Name","description":"Channel name given by the user"},"channel_type":{"$ref":"#/components/schemas/ChannelType","description":"Type of the channel; it can be:\n  - FULL for a channel with a MediaCopilot managed encoder.\n  - PACKAGE_ONLY for a channel with an externally managed encoder."},"state":{"anyOf":[{"type":"string","enum":["CREATE_FAILED","CREATING","DELETED","DELETING","IDLE","RECOVERING","RUNNING","STARTING","STOPPING","UPDATE_FAILED","UPDATING"]},{"type":"string","const":"READ_ERROR"},{"type":"string","const":"EXTERNALLY_MANAGED"}],"title":"State","description":"Current state of the channel"},"playback_url":{"type":"string","title":"Playback Url","description":"HLS playback URL for this channel"},"ingest_type":{"$ref":"#/components/schemas/IngestType","description":"Ingest protocol/source of the live signal:\n  - c21_live_encoder for a C21 Live Encoder.\n  - srt for an external SRT ingest.\n  - rtmp for an external RTMP ingest.\n  - other for any other ingest source."}},"type":"object","required":["id","tenant_id","name","channel_type","state","playback_url","ingest_type"],"title":"ChannelForUserResponse","description":"Response model for Channel model to be used in user views."},"ChannelOperationResponse":{"properties":{"data":{"$ref":"#/components/schemas/ChannelForUserResponse"}},"type":"object","required":["data"],"title":"ChannelOperationResponse","examples":[{"data":{"channel_type":"full","id":"01234567-89ab-cdef-0123-456789abcdef","ingest_type":"c21_live_encoder","name":"Example name","playback_url":"https://example.org/base.m3u8","state":"RUNNING","tenant_id":"fedcba98-7654-3210-fedc-ba9876543210"}}]},"ChannelType":{"type":"string","enum":["full","package_only"],"title":"ChannelType"},"CheckDownloadStatusResponse":{"properties":{"state":{"$ref":"#/components/schemas/JobState"},"job_id":{"type":"string","format":"uuid","title":"Job Id"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["state","job_id"],"title":"CheckDownloadStatusResponse","examples":[{"download_url":"https://example.com/download/clip1.zip","expires_at":"2025-09-16T12:00:00+00:00","job_id":"00000000-0000-0000-0000-000000000001","state":"finished_ok"},{"job_id":"00000000-0000-0000-0000-000000000002","state":"running"}]},"CheckUploadJobResponse":{"properties":{"job_id":{"type":"string","format":"uuid","title":"Job Id"},"state":{"$ref":"#/components/schemas/JobState"},"post_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Post Id"}},"type":"object","required":["job_id","state"],"title":"CheckUploadJobResponse"},"CollectionForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"thumbnails":{"items":{"anyOf":[{"type":"string"},{"type":"null"}]},"type":"array","title":"Thumbnails","description":"List of up to 4 poster URLs from assets in the collection. DEPRECATED: Use cover_info instead","deprecated":true},"cover_info":{"$ref":"#/components/schemas/CoverInfo","description":"Info of the covers to show as a preview"}},"type":"object","required":["id","name","tenant_id","created_at","updated_at","cover_info"],"title":"CollectionForResponse"},"CoverInfo":{"properties":{"assets_info":{"items":{"$ref":"#/components/schemas/AssetCoverInfo"},"type":"array","title":"Assets Info"}},"type":"object","required":["assets_info"],"title":"CoverInfo"},"CreateBlacklistPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the blacklist"},"words":{"items":{"type":"string"},"type":"array","title":"Words","description":"List of blacklisted words"},"language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"}],"title":"Language Id","description":"The language ID or ISO code for the blacklist"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"Optional template ID to associate with this blacklist"}},"additionalProperties":false,"type":"object","required":["name","words","language_id"],"title":"CreateBlacklistPayload","examples":[{"language_id":"en","name":"Profanity Filter","template_id":"00000000-0000-0000-0000-000000000001","words":["badword1","badword2"]},{"language_id":"00000000-0000-0000-0000-000000000001","name":"Profanity Filter 2","template_id":"00000000-0000-0000-0000-000000000001","words":["badword3","badword4"]}]},"CreateBlacklistResponse":{"properties":{"data":{"$ref":"#/components/schemas/BlacklistForResponse"}},"type":"object","required":["data"],"title":"CreateBlacklistResponse"},"CreateCompositionSocialMediaPostPayload":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"ID of the social media account to publish to"},"render_job_id":{"type":"string","format":"uuid","title":"Render Job Id","description":"ID of the finished render job to publish"},"caption":{"type":"string","title":"Caption","description":"Caption or text body for the post"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"UTC datetime to publish the post. If omitted, publishes immediately."},"platform_options":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/YouTubePostOptions"},{"$ref":"#/components/schemas/TwitterPostOptions"},{"$ref":"#/components/schemas/ThreadsPostOptions"}],"discriminator":{"propertyName":"platform","mapping":{"threads":"#/components/schemas/ThreadsPostOptions","twitter":"#/components/schemas/TwitterPostOptions","youtube":"#/components/schemas/YouTubePostOptions"}}},{"type":"null"}],"title":"Platform Options","description":"Platform-specific publish options (e.g. YouTube visibility)"}},"type":"object","required":["account_id","render_job_id","caption"],"title":"CreateCompositionSocialMediaPostPayload"},"CreateCompositionSocialMediaPostResponse":{"properties":{"job_id":{"type":"string","format":"uuid","title":"Job Id"},"state":{"$ref":"#/components/schemas/JobState"}},"type":"object","required":["job_id","state"],"title":"CreateCompositionSocialMediaPostResponse"},"CreateDictionaryPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the dictionary"},"dictionary":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Dictionary","description":"Dictionary content"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"Optional template ID to associate with this dictionary"}},"additionalProperties":false,"type":"object","required":["name","dictionary"],"title":"CreateDictionaryPayload","examples":[{"dictionary":{"AI":["Artificial Intelligence","Machine Learning"],"API":["Application Programming Interface","REST API"]},"name":"Technical Terms","template_id":"00000000-0000-0000-0000-000000000001"}]},"CreateDictionaryResponse":{"properties":{"data":{"$ref":"#/components/schemas/DomainDictionaryForResponse"}},"type":"object","required":["data"],"title":"CreateDictionaryResponse"},"CreateSubtitleStylePayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the subtitle style"},"font_family":{"type":"string","title":"Font Family","description":"Name of the font used for the subtitle"},"font_size_px":{"type":"integer","title":"Font Size Px","description":"Font size in pixels","default":26},"font_weight":{"type":"integer","title":"Font Weight","description":"Thickness of the subtitle font","default":600},"line_height":{"type":"number","title":"Line Height","description":"Height of the subtitle line","default":1.2},"vertical_position_pct":{"type":"number","title":"Vertical Position Pct","description":"Vertical position for the subtitles in percentage of total video height","default":0.1},"text_color":{"type":"string","title":"Text Color","description":"Hexadecimal value for the font color"},"shadow_blur":{"type":"number","title":"Shadow Blur","description":"Shadow blur","default":0.0},"shadow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shadow Color","description":"Hexadecimal value for the shadow color"},"shadow_opacity_pct":{"type":"number","title":"Shadow Opacity Pct","description":"Opacity of the shadow in percentage","default":1},"shadow_offset_x_px":{"type":"integer","title":"Shadow Offset X Px","description":"Offset of the shadow in the X axis in pixels","default":1},"shadow_offset_y_px":{"type":"integer","title":"Shadow Offset Y Px","description":"Offset of the shadow in the Y axis in pixels","default":1},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color","description":"Hexadecimal value for the background color"},"background_opacity":{"type":"number","title":"Background Opacity","description":"Opacity of the background (from 0 to 1)","default":0.0},"stroke_color":{"type":"string","title":"Stroke Color","description":"Hexadecimal value for the stroke color","default":"#000000"},"stroke_thickness_px":{"type":"integer","title":"Stroke Thickness Px","description":"Thickness of the stroke, in pixels","default":0}},"additionalProperties":false,"type":"object","required":["name","font_family","text_color"],"title":"CreateSubtitleStylePayload","examples":[{"font_family":"Arial","name":"My subtitle style","text_color":"#050B07"}]},"CreateSubtitleStyleResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingSubtitleStyleForResponse"}},"type":"object","required":["data"],"title":"CreateSubtitleStyleResponse","examples":[{"data":{"background_opacity":0.0,"font_family":"Arial","font_size_px":26,"font_weight":600,"id":"00000000-0000-0000-0000-000000000001","line_height":1.2,"name":"Example name","shadow_blur":0.0,"shadow_offset_x_px":1,"shadow_offset_y_px":1,"shadow_opacity_pct":1,"stroke_color":"#000000","stroke_thickness_px":0,"tenant_id":"00000000-0000-0000-0000-000000000001","text_color":"#6B1010","vertical_position_pct":0.1}}]},"CreateVideoClipSocialMediaPostPayload":{"properties":{"account_id":{"type":"string","format":"uuid","title":"Account Id","description":"ID of the social media account to publish to"},"caption":{"type":"string","title":"Caption","description":"Caption or text body for the post"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"UTC datetime to publish the post. If omitted, publishes immediately."},"platform_options":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/YouTubePostOptions"},{"$ref":"#/components/schemas/TwitterPostOptions"},{"$ref":"#/components/schemas/ThreadsPostOptions"}],"discriminator":{"propertyName":"platform","mapping":{"threads":"#/components/schemas/ThreadsPostOptions","twitter":"#/components/schemas/TwitterPostOptions","youtube":"#/components/schemas/YouTubePostOptions"}}},{"type":"null"}],"title":"Platform Options","description":"Platform-specific publish options (e.g. YouTube visibility)"}},"type":"object","required":["account_id","caption"],"title":"CreateVideoClipSocialMediaPostPayload"},"CreateVideoClipSocialMediaPostResponse":{"properties":{"job_id":{"type":"string","format":"uuid","title":"Job Id"},"state":{"$ref":"#/components/schemas/JobState"}},"type":"object","required":["job_id","state"],"title":"CreateVideoClipSocialMediaPostResponse"},"CreateVideoCompositionPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name for this video composition"},"width":{"type":"integer","title":"Width","description":"Width of the resulting video, in pixels"},"height":{"type":"integer","title":"Height","description":"Height of the resulting video, in pixels"},"fps":{"type":"number","title":"Fps","description":"Frames per second of the resulting video"},"panning":{"type":"boolean","title":"Panning","description":"Indicates if camera panning is activated during rendering","default":false},"video_tracks":{"items":{"$ref":"#/components/schemas/VideoTrackForRequest"},"type":"array","title":"Video Tracks","description":"List of video tracks in the composition"},"branding_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Branding Id","description":"ID of the branding to apply to the rendered video"},"subtitles_language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitles Language Id","description":"ID of the language to use for the rendered subtitles"}},"type":"object","required":["name","width","height","fps","video_tracks"],"title":"CreateVideoCompositionPayload","examples":[{"fps":30.0,"height":1080,"name":"Video Composition 1","video_tracks":[{"muted":false,"name":"Main Track","segments":[{"asset_id":"550e8400-e29b-41d4-a716-446655440000","duration_frames":150,"start_from":0,"transition_duration_frames":10,"transition_type":"fade","type":"asset","volume":100},{"duration_frames":60,"type":"empty"}]}],"width":1920}]},"CreateWhitelistPayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the whitelist"},"words":{"items":{"type":"string"},"type":"array","title":"Words","description":"Whitelisted words"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"Optional template ID to associate with this whitelist"}},"additionalProperties":false,"type":"object","required":["name","words"],"title":"CreateWhitelistPayload","examples":[{"name":"Example whitelist","template_id":"00000000-0000-0000-0000-000000000001","words":["word 1","word 2"]}]},"CreateWhitelistResponse":{"properties":{"data":{"$ref":"#/components/schemas/WhitelistForResponse"}},"type":"object","required":["data"],"title":"CreateWhitelistResponse"},"CreateZernioProfilePayload":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"}},"type":"object","required":["name"],"title":"CreateZernioProfilePayload"},"CreateZernioProfileResponse":{"properties":{"data":{"$ref":"#/components/schemas/ZernioProfileForResponse"}},"type":"object","required":["data"],"title":"CreateZernioProfileResponse"},"CurrentMonthUsageData":{"properties":{"monthly_usage_seconds":{"type":"integer","title":"Monthly Usage Seconds"},"monthly_limit_seconds":{"type":"integer","title":"Monthly Limit Seconds"},"overconsumption_seconds":{"type":"integer","title":"Overconsumption Seconds"},"year":{"type":"integer","title":"Year"},"month":{"type":"integer","title":"Month"}},"type":"object","required":["monthly_usage_seconds","monthly_limit_seconds","overconsumption_seconds","year","month"],"title":"CurrentMonthUsageData","example":{"consume_limit_seconds":36000,"consume_seconds":125,"month":2,"year":2024}},"CurrentMonthUsageResponse":{"properties":{"data":{"$ref":"#/components/schemas/CurrentMonthUsageData"}},"type":"object","required":["data"],"title":"CurrentMonthUsageResponse","example":{"data":{"month":2,"monthly_limit_seconds":140,"monthly_usage_seconds":125,"overconsumption_seconds":0,"year":2024}}},"CustomAutocenterPayload":{"properties":{"start_time_ms":{"type":"integer","title":"Start Time Ms","description":"Start time of the autocenter point in milliseconds"},"center_x_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Center X Pct","description":"X-coordinate of the center point as a percentage of the frame's width"},"center_y_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Center Y Pct","description":"Y-coordinate of the center point as a percentage of the frame's height","default":50.0},"height_pct":{"type":"number","maximum":40.0,"minimum":0.0,"title":"Height Pct","description":"Uniform zoom applied to the frame as a percentage","default":0.0},"start_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Frame","description":"Start frame of the autocenter point"}},"type":"object","required":["start_time_ms","center_x_pct"],"title":"CustomAutocenterPayload","examples":[{"center_x_pct":40.0,"center_y_pct":50.0,"height_pct":0.0,"start_frame":75,"start_time_ms":1000},{"center_x_pct":60.0,"center_y_pct":35.0,"height_pct":20.0,"start_frame":175,"start_time_ms":3000}]},"DocumentForUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the document"},"name":{"type":"string","title":"Name","description":"Name of the document"},"download_url":{"type":"string","title":"Download Url","description":"Signed URL to download the document"}},"type":"object","required":["id","name","download_url"],"title":"DocumentForUserResponse","description":"Public response model for Document."},"DomainDictionaryForResponse":{"properties":{"name":{"type":"string","title":"Name"},"dictionary":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","title":"Dictionary","default":{}},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant to which this dictionary belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Domain dictionary ID"}},"type":"object","required":["name","tenant_id","id"],"title":"DomainDictionaryForResponse"},"DownloadVideoClipsAsyncResponse":{"properties":{"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url","description":"Presigned URL to the .mp4. Populated only when a single clip ID is passed."},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","description":"Expiration time of the presigned URL. Populated only when a single clip ID is passed."},"job_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Job Id","description":"ID of the background zip job. Populated only when multiple clip IDs are passed."},"state":{"anyOf":[{"$ref":"#/components/schemas/JobState"},{"type":"null"}],"description":"State of the background zip job. Populated only when multiple clip IDs are passed."}},"type":"object","title":"DownloadVideoClipsAsyncResponse","examples":[{"download_url":"https://example.com/clip.mp4?presigned","expires_at":"2025-09-16T12:00:00+00:00"},{"job_id":"00000000-0000-0000-0000-000000000001","state":"queued"}]},"DownloadVideoClipsPayload":{"properties":{"ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Ids","description":"List of video clip ids to download"}},"additionalProperties":false,"type":"object","required":["ids"],"title":"DownloadVideoClipsPayload","examples":[{"ids":["00000000-0000-0000-0000-000000000001","00000000-0000-0000-0000-000000000002"]},{"ids":["00000000-0000-0000-0000-000000000003"]}]},"DownloadVideoCompositionPayload":{"properties":{"render_job_id":{"type":"string","format":"uuid","title":"Render Job Id","description":"The ID of the finished render job to download"}},"type":"object","required":["render_job_id"],"title":"DownloadVideoCompositionPayload"},"DownloadVideoCompositionResponse":{"properties":{"download_url":{"type":"string","title":"Download Url"}},"type":"object","required":["download_url"],"title":"DownloadVideoCompositionResponse"},"EmbeddingsSearchType":{"type":"string","enum":["image","text"],"title":"EmbeddingsSearchType"},"EmbeddingsSourceType":{"type":"string","enum":["image-embeddings","text-embeddings","text-bm25","transcript-match"],"title":"EmbeddingsSourceType"},"EmptyVideoSegment":{"properties":{"type":{"type":"string","const":"empty","title":"Type","default":"empty"},"duration_frames":{"type":"integer","title":"Duration Frames","description":"The number of frames this empty segment lasts"}},"additionalProperties":false,"type":"object","required":["duration_frames"],"title":"EmptyVideoSegment"},"EmptyVideoSegmentForRequest":{"properties":{"meta_parent_model":{"anyOf":[{"$ref":"#/components/schemas/SQLModel"},{"$ref":"#/components/schemas/EmptyVideoSegmentForRequest"},{"type":"null"}],"title":"Meta Parent Model"},"meta_parent_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Parent Key"},"type":{"anyOf":[{"type":"string","const":"empty"},{"type":"null"}],"title":"Type","default":"empty"},"duration_frames":{"type":"integer","title":"Duration Frames","description":"The number of frames this empty segment lasts"}},"additionalProperties":false,"type":"object","required":["duration_frames"],"title":"EmptyVideoSegmentForRequest","description":"A blank segment used to add pauses or gaps between asset segments.","examples":[{"duration_frames":90,"type":"empty"}]},"ExportClipPayload":{"properties":{"external_storage_id":{"type":"string","format":"uuid","title":"External Storage Id","description":"The ID of the destination external storage"}},"type":"object","required":["external_storage_id"],"title":"ExportClipPayload"},"ExportClipResponse":{"properties":{"export_path":{"type":"string","title":"Export Path"}},"type":"object","required":["export_path"],"title":"ExportClipResponse","examples":[{"export_path":"url/path/134"},{"export_path":"url/path/134"}]},"ExportMetadataPayload":{"properties":{"external_storage_id":{"type":"string","format":"uuid","title":"External Storage Id","description":"The ID of the destination external storage"}},"type":"object","required":["external_storage_id"],"title":"ExportMetadataPayload"},"ExportMetadataResponse":{"properties":{"export_path":{"type":"string","title":"Export Path"}},"type":"object","required":["export_path"],"title":"ExportMetadataResponse","examples":[{"export_path":"url/path/134"},{"export_path":"url/path/134"}]},"ExportTranscriptionPayload":{"properties":{"external_storage_id":{"type":"string","format":"uuid","title":"External Storage Id","description":"The ID of the destination external storage"}},"type":"object","required":["external_storage_id"],"title":"ExportTranscriptionPayload"},"ExportTranscriptionResponse":{"properties":{"export_path":{"type":"string","title":"Export Path"}},"type":"object","required":["export_path"],"title":"ExportTranscriptionResponse","examples":[{"export_path":"url/path/134"},{"export_path":"url/path/134"}]},"ExternalStorageForResponse":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant that owns this object"},"name":{"type":"string","title":"Name","description":"Identifying name of the storage"},"type":{"$ref":"#/components/schemas/ExternalStorageType","description":"Type of storage provider, starting with a Dummy type to test functionality"},"destination":{"additionalProperties":true,"type":"object","title":"Destination","description":"Export destination for files: bucket_name, blob_url, etc"},"export_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Path","description":"Configurable path where files will be stored (supports templates like {asset_id} or {asset_external_id})"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time of creation"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time of the last update in the system"},"id":{"type":"string","format":"uuid","title":"Id","description":"External storage ID"}},"type":"object","required":["tenant_id","name","type","id"],"title":"ExternalStorageForResponse"},"ExternalStorageType":{"type":"string","enum":["dummy","azure","aws_s3","gcp_storage"],"title":"ExternalStorageType"},"FaceForResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Unique identifier for the face detection record"},"face_identifier":{"type":"string","title":"Face Identifier","description":"Unique identifier for the detected face"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the face detection was created"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"ID of the asset containing the face detection"},"start_ms":{"type":"integer","title":"Start Ms","description":"Start time of the face detection in milliseconds"},"start_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Frame","description":"Start frame of the face detection"},"bounding_box":{"$ref":"#/components/schemas/BoundingBoxPayload","description":"Bounding box coordinates of the detected face"},"confidence":{"type":"number","title":"Confidence","description":"Confidence score of the face detection"}},"type":"object","required":["id","face_identifier","created_at","asset_id","start_ms","bounding_box","confidence"],"title":"FaceForResponse"},"FaceResponsePayload":{"properties":{"face":{"items":{"$ref":"#/components/schemas/FaceForResponse"},"type":"array","title":"Face","description":"All the face of a specific asset."}},"type":"object","required":["face"],"title":"FaceResponsePayload"},"FilterConditionForResponse":{"properties":{"name":{"$ref":"#/components/schemas/FilterFieldName","description":"Name of the filter field."},"operator":{"$ref":"#/components/schemas/FilterOperator","description":"Filter operator. 'equals' for exact match, 'ilike' for case-insensitive pattern matching"},"value":{"type":"string","title":"Value","description":"Filter value. For 'ilike' operator, use SQL wildcards like '%.mp4' for patterns. For 'equals', use exact values."}},"type":"object","required":["name","operator","value"],"title":"FilterConditionForResponse"},"FilterFieldName":{"type":"string","enum":["entities","sentiment","classification","speakers","language_id"],"title":"FilterFieldName"},"FilterForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Filter view unique identifier"},"name":{"type":"string","title":"Name","description":"Name of the filter view"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant this filter view belongs to"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"ID of the user who created this filter view"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Timestamp when the filter view was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Timestamp when the filter view was last updated"},"filter_params":{"items":{"$ref":"#/components/schemas/FilterConditionForResponse"},"type":"array","title":"Filter Params","description":"List of filter conditions that define this filter view"}},"type":"object","required":["id","name","tenant_id","user_id","created_at","updated_at"],"title":"FilterForResponse"},"FilterOperator":{"type":"string","enum":["equals","ilike"],"title":"FilterOperator"},"FilterViewCreatePayload":{"properties":{"name":{"type":"string","title":"Name","description":"Name for the new filter view"},"filter_params":{"items":{"$ref":"#/components/schemas/FilterConditionForResponse"},"type":"array","minItems":1,"title":"Filter Params","description":"At least one filter condition is required"}},"type":"object","required":["name","filter_params"],"title":"FilterViewCreatePayload"},"FilterViewUpdatePayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"New name for the filter view (optional)"},"filter_params":{"anyOf":[{"items":{"$ref":"#/components/schemas/FilterConditionForResponse"},"type":"array"},{"type":"null"}],"title":"Filter Params","description":"New filter conditions. If provided, must contain at least one condition and will replace all existing conditions"}},"type":"object","title":"FilterViewUpdatePayload"},"FinishClipUploadPayload":{"properties":{"etags":{"items":{"type":"string"},"type":"array","title":"Etags"}},"additionalProperties":false,"type":"object","required":["etags"],"title":"FinishClipUploadPayload","examples":[{"etags":["7fc40a32cdc40997cd32e528f9a6adfd","e0939ffcaf8bd970d13270310a0e55b7"]}]},"FinishClipUploadResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingClipUploadJobForResponse"}},"type":"object","required":["data"],"title":"FinishClipUploadResponse","examples":[{"data":{"clip_id":"00000000-0000-0000-0000-000000000001","created_at":"2026-09-01T10:26:57.556913Z","finished_at":"2026-09-01T10:26:57.556920Z","id":"00000000-0000-0000-0000-000000000001","started_at":"2026-09-01T10:26:57.556919Z","state":"queued","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:57.556918Z"}}]},"FinishOverlayUploadPayload":{"properties":{"etags":{"items":{"type":"string"},"type":"array","title":"Etags"}},"additionalProperties":false,"type":"object","required":["etags"],"title":"FinishOverlayUploadPayload","examples":[{"etags":["7fc40a32cdc40997cd32e528f9a6adfd","e0939ffcaf8bd970d13270310a0e55b7"]}]},"FinishOverlayUploadResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingOverlayUploadJobForResponse"}},"type":"object","required":["data"],"title":"FinishOverlayUploadResponse","examples":[{"data":{"created_at":"2026-09-01T10:26:57.548316Z","finished_at":"2026-09-01T10:26:57.548324Z","id":"00000000-0000-0000-0000-000000000001","overlay_id":"00000000-0000-0000-0000-000000000001","started_at":"2026-09-01T10:26:57.548323Z","state":"queued","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:57.548322Z"}}]},"FinishUploadPayload":{"properties":{"etags":{"items":{"type":"string"},"type":"array","title":"Etags"}},"additionalProperties":false,"type":"object","required":["etags"],"title":"FinishUploadPayload","examples":[{"etags":["7fc40a32cdc40997cd32e528f9a6adfd","e0939ffcaf8bd970d13270310a0e55b7"]}]},"FullAssetForResponse":{"additionalProperties":true,"type":"object"},"FullAssetMetadataForResponse":{"properties":{"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"The language of this metadata entry"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The asset to which this metadata belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Metadata ID"},"fields":{"items":{"$ref":"#/components/schemas/AssetMetadataFieldForResponse"},"type":"array","title":"Fields","description":"The metadata fields"}},"type":"object","required":["language_id","asset_id","id","fields"],"title":"FullAssetMetadataForResponse"},"FullSpeakerForResponse":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"ID of the associated asset"},"name":{"type":"string","title":"Name","description":"Name of the speaker"},"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the speaker"}},"type":"object","required":["asset_id","name","id"],"title":"FullSpeakerForResponse","description":"The API output model for Speaker"},"FullTranscriptionForResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Transcription ID; cannot be null"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The asset to which this transcription belongs"},"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"The language of this transcription"},"transcription_type":{"$ref":"#/components/schemas/TranscriptionType","description":"Type of transcription (original or translation)"},"segments":{"items":{"$ref":"#/components/schemas/SegmentForResponse"},"type":"array","title":"Segments"}},"type":"object","required":["asset_id","language_id","transcription_type","segments"],"title":"FullTranscriptionForResponse"},"GenDownloadUrlAudioTrackResponse":{"properties":{"data":{"$ref":"#/components/schemas/AudioTrackDownloadUrl"}},"type":"object","required":["data"],"title":"GenDownloadUrlAudioTrackResponse","examples":[{"data":{"url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000002/voice_over/raw/audio_3.wav"}}]},"GetAssetByExternalIdResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullAssetForResponse"}},"type":"object","required":["data"],"title":"GetAssetByExternalIdResponse","examples":[{"data":{"asset_type":"video_audio_cmaf","base_stream_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/HLS/base.m3u8","created_at":"2026-09-01T10:26:55.815544Z","creator_id":"00000000-0000-0000-0000-000000000001","duration_ms":100000,"encode_passthrough":false,"external_id":"Example_external_ID","filename":"asset_filename.mp4","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","mc_model":"normal","mp4_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/asset_mp4_base.mp4","poster_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/poster.jpeg","processing_steps_status":[{"duration_seconds":0,"state":"started","step":"encode"}],"speakers":[],"state":"created","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:55.815546Z"}}]},"GetAssetResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullAssetForResponse"}},"type":"object","required":["data"],"title":"GetAssetResponse","examples":[{"data":{"asset_type":"video_audio_cmaf","base_stream_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/HLS/base.m3u8","created_at":"2026-09-01T10:26:55.814906Z","creator_id":"00000000-0000-0000-0000-000000000001","duration_ms":100000,"encode_passthrough":false,"external_id":"Example_external_ID","filename":"asset_filename.mp4","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","mc_model":"normal","mp4_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/asset_mp4_base.mp4","poster_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/poster.jpeg","processing_steps_status":[{"duration_seconds":0,"state":"started","step":"encode"}],"speakers":[],"state":"created","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:55.814912Z"}}]},"GetAudioTrackResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicAudioTrackForResponse"}},"type":"object","required":["data"],"title":"GetAudioTrackResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000002","created_at":"2026-09-01T10:26:57.434423Z","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","up_to_date":true,"updated_at":"2026-09-01T10:26:57.434426Z"}}]},"GetBlacklistResponse":{"properties":{"data":{"$ref":"#/components/schemas/BlacklistForResponse"}},"type":"object","required":["data"],"title":"GetBlacklistResponse"},"GetBrandingResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingForResponse"}},"type":"object","required":["data"],"title":"GetBrandingResponse","examples":[{"data":{"id":"00000000-0000-0000-0000-000000000001","name":"Example name","safe_area_bottom_pct":0.0,"safe_area_left_pct":0.0,"safe_area_right_pct":0.0,"safe_area_top_pct":0.0,"subtitle_style_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"GetChannelResponse":{"properties":{"data":{"$ref":"#/components/schemas/ChannelForUserResponse"}},"type":"object","required":["data"],"title":"GetChannelResponse","examples":[{"data":{"channel_type":"full","id":"01234567-89ab-cdef-0123-456789abcdef","ingest_type":"c21_live_encoder","name":"Example name","playback_url":"https://example.org/base.m3u8","state":"RUNNING","tenant_id":"fedcba98-7654-3210-fedc-ba9876543210"}}]},"GetClipResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicBrandingClipForResponse"}},"type":"object","required":["data"],"title":"GetClipResponse","examples":[{"data":{"download_url":"https://cdn.example.org/branding/clips/clip.mp4?signed","duration_ms":10000,"file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"GetClipUploadJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingClipUploadJobForResponse"}},"type":"object","required":["data"],"title":"GetClipUploadJobResponse","examples":[{"data":{"clip_id":"00000000-0000-0000-0000-000000000001","created_at":"2026-09-01T10:26:57.557323Z","finished_at":"2026-09-01T10:26:57.557327Z","id":"00000000-0000-0000-0000-000000000001","started_at":"2026-09-01T10:26:57.557326Z","state":"queued","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:57.557325Z"}}]},"GetCollectLiveClipJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/ChannelCollectLiveClipJob"}},"type":"object","required":["data"],"title":"GetCollectLiveClipJobResponse","examples":[{"data":{"asset_id":"11111111-2222-3333-4444-555555555555","channel_id":"abcdef01-2345-6789-abcd-ef0123456789","created_at":"2025-01-20T12:00:00Z","end":"2025-01-20T13:00:00Z","finished_at":"2025-01-20T12:10:00Z","id":"01234567-89ab-cdef-0123-456789abcdef","start":"2025-01-20T12:30:00Z","started_at":"2025-01-20T12:05:00Z","state":"finished_ok","tenant_id":"fedcba98-7654-3210-fedc-ba9876543210"}}]},"GetCollectionResponse":{"properties":{"data":{"$ref":"#/components/schemas/CollectionForResponse"}},"type":"object","required":["data"],"title":"GetCollectionResponse","examples":[{"data":{"cover_info":{"assets_info":[{"asset_type":"audio_only"}]},"created_at":"2026-09-01T10:26:57.585186Z","id":"00000000-0000-0000-0000-000000000001","name":"Sample Collection","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","thumbnails":["https://mam.saas.example.org/1/poster.jpeg"],"updated_at":"2026-09-01T10:26:57.585189Z"}}]},"GetDictionaryResponse":{"properties":{"data":{"$ref":"#/components/schemas/DomainDictionaryForResponse"}},"type":"object","required":["data"],"title":"GetDictionaryResponse"},"GetExternalStorageResponse":{"properties":{"data":{"$ref":"#/components/schemas/ExternalStorageForResponse","description":"The external storage information"}},"type":"object","required":["data"],"title":"GetExternalStorageResponse","examples":[{"data":{"destination":{"bucket":"destination_bucket"},"export_path":"/personal/repository","id":"00000000-0000-0000-0000-000000000001","name":"My storage","type":"DUMMY"}}]},"GetFilterViewResponse":{"properties":{"data":{"$ref":"#/components/schemas/FilterForResponse"}},"type":"object","required":["data"],"title":"GetFilterViewResponse","examples":[{"data":{"created_at":"2025-06-19T10:30:00Z","filter_params":[{"name":"entities","operator":"ilike","value":"%.mp4"}],"id":"00000000-0000-0000-0000-000000000001","name":"Recently Added Assets","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2025-06-19T10:30:00Z","user_id":"00000000-0000-0000-0000-000000000001"}}]},"GetLanguageResponse":{"properties":{"data":{"$ref":"#/components/schemas/LanguageForResponse"}},"type":"object","required":["data"],"title":"GetLanguageResponse","examples":[{"data":{"bcp_47":"en","id":"00000000-0000-0000-0000-000000000001","iso_639_1":"en","name":"English","rtl":false,"support_transcription":true,"voice_over_tier":1}}]},"GetMetadataResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullAssetMetadataForResponse"}},"type":"object","required":["data"],"title":"GetMetadataResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000005","fields":[{"id":"00000000-0000-0000-0000-000000000001","name":"summary","value":{"text":"Summary value"}}],"id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001"}}]},"GetOAuthUrlPayload":{"properties":{"profile_id":{"type":"string","title":"Profile Id","description":"ID of the social media profile to connect the account to"},"platform":{"$ref":"#/components/schemas/SocialMediaPlatform","description":"The social media platform to connect"}},"type":"object","required":["profile_id","platform"],"title":"GetOAuthUrlPayload"},"GetOAuthUrlResponse":{"properties":{"oauth_url":{"type":"string","title":"Oauth Url","description":"The OAuth URL the user must visit to connect the account"},"existing_accounts_count":{"type":"integer","title":"Existing Accounts Count","description":"Number of accounts of this platform already connected by this tenant. When greater than zero, completing OAuth will add an additional account rather than replacing an existing one."}},"type":"object","required":["oauth_url","existing_accounts_count"],"title":"GetOAuthUrlResponse"},"GetOverlayResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicBrandingOverlayForResponse"}},"type":"object","required":["data"],"title":"GetOverlayResponse","examples":[{"data":{"download_url":"https://cdn.example.org/branding/overlays/overlay.png?signed","file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"GetOverlayUploadJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingOverlayUploadJobForResponse"}},"type":"object","required":["data"],"title":"GetOverlayUploadJobResponse","examples":[{"data":{"created_at":"2026-09-01T10:26:57.548695Z","finished_at":"2026-09-01T10:26:57.548699Z","id":"00000000-0000-0000-0000-000000000001","overlay_id":"00000000-0000-0000-0000-000000000001","started_at":"2026-09-01T10:26:57.548698Z","state":"queued","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:57.548697Z"}}]},"GetPartialRetranslationJobStatusResponse":{"properties":{"data":{"$ref":"#/components/schemas/PartialRetranslationJobForResponse"}},"type":"object","required":["data"],"title":"GetPartialRetranslationJobStatusResponse","examples":[{"data":{"job_id":"00000000-0000-0000-0000-000000000001","segment_ids":["00000000-0000-0000-0000-000000000001","00000000-0000-0000-0000-000000000002"],"state":"running"}}]},"GetPlanResponse":{"properties":{"data":{"$ref":"#/components/schemas/PlanForResponse","description":"The plan information"}},"type":"object","required":["data"],"title":"GetPlanResponse","examples":[{"data":{"content_indexing":true,"extras":{},"id":"00000000-0000-0000-0000-000000000001","interactive_agent":true,"is_trial":false,"metadata_generation":true,"monthly_limit_h":10,"name":"Basic","scene_face_analysis":true,"social_media_accounts_limit":4,"sound_detection":true,"storage_limit_gb":10,"translation_languages_limit":5,"turbo_mode":true,"video_clips":true,"video_compositions":true,"video_quality":"normal","voice_over_languages_limit":0}}]},"GetProcessVoiceOverJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/ProcessVoiceOverJobForResponse"}},"type":"object","required":["data"],"title":"GetProcessVoiceOverJobResponse","description":"Response class for get process voice over job API call.","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-00000000000a","state":"running"}}]},"GetSocialMediaAccountResponse":{"properties":{"data":{"$ref":"#/components/schemas/SocialMediaAccountForResponse"}},"type":"object","required":["data"],"title":"GetSocialMediaAccountResponse"},"GetSocialMediaPostResponse":{"properties":{"data":{"$ref":"#/components/schemas/SocialMediaPostForResponse"}},"type":"object","required":["data"],"title":"GetSocialMediaPostResponse"},"GetSpeakerResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullSpeakerForResponse"}},"type":"object","required":["data"],"title":"GetSpeakerResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","name":"example_name"}}]},"GetSpeakersResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/FullSpeakerForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"GetSpeakersResponse","examples":[{"data":[{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","name":"speaker_one"},{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000002","name":"speaker_two"}]}]},"GetSubtitleStyleResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingSubtitleStyleForResponse"}},"type":"object","required":["data"],"title":"GetSubtitleStyleResponse","examples":[{"data":{"background_opacity":0.0,"font_family":"Arial","font_size_px":26,"font_weight":600,"id":"00000000-0000-0000-0000-000000000001","line_height":1.2,"name":"Example name","shadow_blur":0.0,"shadow_offset_x_px":1,"shadow_offset_y_px":1,"shadow_opacity_pct":1,"stroke_color":"#000000","stroke_thickness_px":0,"tenant_id":"00000000-0000-0000-0000-000000000001","text_color":"#6B1010","vertical_position_pct":0.1}}]},"GetTTSVoiceResponse":{"properties":{"data":{"$ref":"#/components/schemas/TTSVoiceForUserResponse"}},"type":"object","required":["data"],"title":"GetTTSVoiceResponse","examples":[{"data":{"created_at":"2000-01-02T07:15:00","gender":"female","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-00000000000a","name":"Sofía","tier":"basic","updated_at":"2020-01-02T07:15:00"}}]},"GetTemplateResponse":{"properties":{"data":{"$ref":"#/components/schemas/SimpleTemplateForResponse","description":"The full template information"}},"type":"object","required":["data"],"title":"GetTemplateResponse"},"GetTranscriptionResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullTranscriptionForResponse"}},"type":"object","required":["data"],"title":"GetTranscriptionResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","segments":[{"end_ms":1500,"id":"00000000-0000-0000-0000-000000000001","speaker_id":"00000000-0000-0000-0000-000000000001","start_ms":0,"text":"First sentence.","translation_pending":false}],"transcription_type":"original"}}]},"GetTranslationJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/TranslationJobForResponse"}},"type":"object","required":["data"],"title":"GetTranslationJobResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000003","created_at":"2026-09-01T10:26:57.735916Z","finished_at":"2026-09-01T10:26:57.735920Z","id":"00000000-0000-0000-0000-000000000001","started_at":"2026-09-01T10:26:57.735919Z","state":"finished_ok","target_languages":[{"bcp_47":"es-ES","id":"00000000-0000-0000-0000-000000000002","iso_639_1":"es","name":"Spanish","rtl":false,"support_transcription":true,"voice_over_tier":2}],"updated_at":"2026-09-01T10:26:57.735918Z"}}]},"GetVariantResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingVariantForResponse"}},"type":"object","required":["data"],"title":"GetVariantResponse","examples":[{"data":{"aspect_ratio":"16:9","branding_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","intro_overlap_ms":0,"outro_overlap_ms":0,"tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"GetWhitelistResponse":{"properties":{"data":{"$ref":"#/components/schemas/WhitelistForResponse"}},"type":"object","required":["data"],"title":"GetWhitelistResponse"},"GetWorkflowTriggerResponse":{"properties":{"data":{"$ref":"#/components/schemas/WorkflowTriggerForUserResponse"}},"type":"object","required":["data"],"title":"GetWorkflowTriggerResponse","examples":[{"data":{"created_at":"2024-01-01T00:00:00","enabled":true,"event_id":"on_clip_rendered","id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000002","updated_at":"2024-01-01T00:00:00","workflow_id":"video_composition_with_silences"}}]},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HistoricalUsageData":{"properties":{"usage":{"items":{"$ref":"#/components/schemas/HistoricalUsageEntry"},"type":"array","title":"Usage"}},"type":"object","required":["usage"],"title":"HistoricalUsageData","example":{"usage":[{"asset_name":"video.mp4","day":15,"month":2,"usage_seconds":55,"year":2024}]}},"HistoricalUsageEntry":{"properties":{"year":{"type":"integer","title":"Year"},"month":{"type":"integer","title":"Month"},"day":{"type":"integer","title":"Day"},"usage_seconds":{"type":"integer","title":"Usage Seconds"},"asset_name":{"type":"string","title":"Asset Name"}},"type":"object","required":["year","month","day","usage_seconds","asset_name"],"title":"HistoricalUsageEntry","example":{"day":15,"month":2,"usage_seconds":55,"year":2024}},"HistoricalUsageResponse":{"properties":{"data":{"$ref":"#/components/schemas/HistoricalUsageData"}},"type":"object","required":["data"],"title":"HistoricalUsageResponse","example":{"data":{"usage":[{"asset_name":"video.mp4","day":15,"month":2,"usage_seconds":55,"year":2024}]}}},"IngestType":{"type":"string","enum":["c21_live_encoder","srt","rtmp","other"],"title":"IngestType","description":"Ingest protocol/source of a live channel signal."},"JobState":{"type":"string","enum":["created","queued","running","finished_ok","error"],"title":"JobState","description":"The different states of a job."},"Language":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Language ID; cannot be null"},"name":{"type":"string","title":"Name","description":"English name for the language"},"rtl":{"type":"boolean","title":"Rtl","description":"Is the language written from right to left","default":false},"iso_639_1":{"type":"string","title":"Iso 639 1","description":"ISO 639-1 code"},"bcp_47":{"type":"string","title":"Bcp 47","description":"IETF BCP47 language tag"},"voice_over_tier":{"$ref":"#/components/schemas/VoiceOverLanguageTier","description":"Indicates if the language can be used for voice over and its relative cost"},"support_transcription":{"type":"boolean","title":"Support Transcription","description":"If True, this language can be used as detected language in transcriptions, as Tenant transcription language, and as specific asset language"}},"type":"object","required":["name","iso_639_1","bcp_47","voice_over_tier","support_transcription"],"title":"Language"},"LanguageForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Language ID"},"name":{"type":"string","title":"Name","description":"English name for the language"},"rtl":{"type":"boolean","title":"Rtl","description":"Is the language written from rigth to left"},"iso_639_1":{"type":"string","title":"Iso 639 1","description":"ISO 639-1 code"},"bcp_47":{"type":"string","title":"Bcp 47","description":"IETF BCP47 language tag"},"voice_over_tier":{"$ref":"#/components/schemas/VoiceOverLanguageTier","description":"Indicates if the language can be used for voice over and its relative cost"},"support_transcription":{"type":"boolean","title":"Support Transcription","description":"If True, this language can be used as detected language in transcriptions, as Tenant transcription language, and as specific asset language"}},"type":"object","required":["id","name","rtl","iso_639_1","bcp_47","voice_over_tier","support_transcription"],"title":"LanguageForResponse"},"ListAssetDocumentsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DocumentForUserResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListAssetDocumentsResponse","examples":[{"data":[{"download_url":"https://example.com/documents/document.json","id":"00000000-0000-0000-0000-000000000001","name":"document.json"}],"navigation":{"link_first":"http://example.com/v1/assets/1/documents?page=1&items=100","link_last":"http://example.com/v1/assets/1/documents?page=1&items=100","link_next":"http://example.com/v1/assets/1/documents?page=1&items=100","link_prev":"http://example.com/v1/assets/1/documents?page=1&items=100","total_elements":1}}]},"ListAssetsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SimpleAssetForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListAssetsResponse","examples":[{"data":[{"asset_type":"video_audio_cmaf","base_stream_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/HLS/base.m3u8","created_at":"2026-09-01T10:26:55.817825Z","creator_id":"00000000-0000-0000-0000-000000000001","duration_ms":100000,"encode_passthrough":false,"external_id":"Example_external_ID","filename":"asset_filename01.mp4","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","mc_model":"normal","mp4_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/asset_mp4_base.mp4","poster_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000001/assets/00000000-0000-0000-0000-000000000001/poster.jpeg","processing_steps_status":[{"duration_seconds":0,"state":"started","step":"encode"}],"state":"created","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:55.817827Z"},{"asset_type":"video_audio_cmaf","base_stream_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000002/assets/00000000-0000-0000-0000-000000000002/HLS/base.m3u8","created_at":"2026-09-01T10:26:55.817910Z","creator_id":"00000000-0000-0000-0000-000000000002","duration_ms":100000,"encode_passthrough":false,"external_id":"Example_external_ID","filename":"asset_filename02.mp4","id":"00000000-0000-0000-0000-000000000002","language_id":"00000000-0000-0000-0000-000000000001","mc_model":"normal","mp4_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000002/assets/00000000-0000-0000-0000-000000000002/asset_mp4_base.mp4","poster_url":"https://mam.saas.example.org/tenant_files/00000000-0000-0000-0000-000000000002/assets/00000000-0000-0000-0000-000000000002/poster.jpeg","processing_steps_status":[{"duration_seconds":0,"state":"started","step":"encode"}],"state":"created","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2026-09-01T10:26:55.817912Z"}],"navigation":{"link_first":"https://example.org/v1/assets?page=1&items=16&collection_id=00000000-0000-0000-0000-000000000001","link_last":"https://example.org/v1/assets?page=4&items=16&collection_id=00000000-0000-0000-0000-000000000001","link_next":"https://example.org/v1/assets?page=4&items=16&collection_id=00000000-0000-0000-0000-000000000001","link_prev":"https://example.org/v1/assets?page=2&items=16&collection_id=00000000-0000-0000-0000-000000000001","total_elements":50}}]},"ListAudioTracksResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PublicAudioTrackForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListAudioTracksResponse","examples":[{"data":[{"asset_id":"00000000-0000-0000-0000-000000000002","created_at":"2026-09-01T10:26:57.434964Z","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001","up_to_date":true,"updated_at":"2026-09-01T10:26:57.434966Z"},{"asset_id":"00000000-0000-0000-0000-000000000002","created_at":"2026-09-01T10:26:57.435013Z","id":"00000000-0000-0000-0000-000000000002","language_id":"00000000-0000-0000-0000-000000000002","up_to_date":true,"updated_at":"2026-09-01T10:26:57.435014Z"}]}]},"ListBlacklistsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BlacklistForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListBlacklistsResponse"},"ListBrandingsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BrandingForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListBrandingsResponse","examples":[{"data":[{"id":"00000000-0000-0000-0000-000000000001","name":"Example name","safe_area_bottom_pct":0.0,"safe_area_left_pct":0.0,"safe_area_right_pct":0.0,"safe_area_top_pct":0.0,"subtitle_style_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001"}],"navigation":{"link_first":"https://example.org/v1/brandings?page=1&items=20","link_last":"https://example.org/v1/brandings?page=1&items=20","link_next":"https://example.org/v1/brandings?page=1&items=20","link_prev":"https://example.org/v1/brandings?page=1&items=20","total_elements":2}}]},"ListChannelResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ChannelForUserResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListChannelResponse","examples":[{"data":[{"channel_type":"full","id":"01234567-89ab-cdef-0123-456789abcdef","ingest_type":"c21_live_encoder","name":"Example name","playback_url":"https://example.org/base.m3u8","state":"RUNNING","tenant_id":"fedcba98-7654-3210-fedc-ba9876543210"}]}]},"ListClipsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PublicBrandingClipForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListClipsResponse","examples":[{"data":[{"duration_ms":10000,"file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}],"navigation":{"link_first":"https://example.org/v1/branding_clips?page=1&items=20","link_last":"https://example.org/v1/branding_clips?page=1&items=20","link_next":"https://example.org/v1/branding_clips?page=1&items=20","link_prev":"https://example.org/v1/branding_clips?page=1&items=20","total_elements":2}}]},"ListCollectionsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/CollectionForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListCollectionsResponse","examples":[{"data":[{"cover_info":{"assets_info":[{"asset_type":"audio_only"},{"asset_type":"video_audio_cmaf","poster_url":"https://mam.saas.example.org/1/poster.jpeg"},{"asset_type":"video_audio_cmaf","poster_url":"https://mam.saas.example.org/1/poster.jpeg"},{"asset_type":"video_audio_cmaf","poster_url":"https://mam.saas.example.org/1/poster.jpeg"}]},"created_at":"2026-09-01T10:26:57.586564Z","id":"00000000-0000-0000-0000-000000000001","name":"Collection 1","template_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001","thumbnails":["https://mam.saas.example.org/1/poster.jpeg","https://mam.saas.example.org/1/poster.jpeg","https://mam.saas.example.org/1/poster.jpeg","https://mam.saas.example.org/1/poster.jpeg"],"updated_at":"2026-09-01T10:26:57.586566Z"},{"cover_info":{"assets_info":[]},"created_at":"2026-09-01T10:26:57.586606Z","id":"00000000-0000-0000-0000-000000000002","name":"Collection 2","template_id":"00000000-0000-0000-0000-000000000002","tenant_id":"00000000-0000-0000-0000-000000000001","thumbnails":[],"updated_at":"2026-09-01T10:26:57.586606Z"}],"navigation":{"link_first":"https://example.org/v1/collections?page=1&items=2","link_last":"https://example.org/v1/collections?page=1&items=2","link_next":"https://example.org/v1/collections?page=1&items=2","link_prev":"https://example.org/v1/collections?page=1&items=2","total_elements":2}}]},"ListDictionariesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DomainDictionaryForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListDictionariesResponse"},"ListExternalStoragesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ExternalStorageForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListExternalStoragesResponse","examples":[{"data":[{"destination":{"bucket":"destination_bucket"},"export_path":"/path/one","id":"00000000-0000-0000-0000-000000000001","name":"Storage 1","type":"DUMMY"},{"destination":{"bucket":"destination_bucket"},"export_path":"/path/two","id":"00000000-0000-0000-0000-000000000002","name":"Storage 2","type":"DUMMY"}],"navigation":{"link_first":"https://example.org/v1/external_storages?page=1&items=20","link_last":"https://example.org/v1/external_storages?page=1&items=20","link_next":"https://example.org/v1/external_storages?page=1&items=20","link_prev":"https://example.org/v1/external_storages?page=1&items=20","total_elements":2}}]},"ListFilterViewsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/FilterForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListFilterViewsResponse","examples":[{"data":[{"created_at":"2025-06-19T10:30:00Z","filter_params":[{"name":"sentiment","operator":"equals","value":"positive"}],"id":"00000000-0000-0000-0000-000000000001","name":"MP4 Files Only","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2025-06-19T10:30:00Z","user_id":"00000000-0000-0000-0000-000000000001"},{"created_at":"2025-06-19T10:30:00Z","filter_params":[{"name":"speakers","operator":"equals","value":"john_doe"}],"id":"00000000-0000-0000-0000-000000000002","name":"Recent Uploads","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2025-06-19T10:30:00Z","user_id":"00000000-0000-0000-0000-000000000001"}],"navigation":{"link_first":"https://example.org/v1/filters?page=1&items=10","link_last":"https://example.org/v1/filters?page=1&items=10","link_next":"https://example.org/v1/filters?page=1&items=10","link_prev":"https://example.org/v1/filters?page=1&items=10","total_elements":2}}]},"ListLanguagesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/LanguageForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListLanguagesResponse","examples":[{"data":[{"bcp_47":"en","id":"00000000-0000-0000-0000-000000000001","iso_639_1":"en","name":"English","rtl":false,"support_transcription":true,"voice_over_tier":1},{"bcp_47":"es","id":"00000000-0000-0000-0000-000000000002","iso_639_1":"es","name":"Spanish","rtl":false,"support_transcription":true,"voice_over_tier":2},{"bcp_47":"ar","id":"00000000-0000-0000-0000-000000000003","iso_639_1":"ar","name":"Arabic","rtl":true,"support_transcription":true,"voice_over_tier":0}]}]},"ListMetadataResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SimpleAssetMetadataForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListMetadataResponse","examples":[{"data":[{"asset_id":"00000000-0000-0000-0000-000000000005","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001"},{"asset_id":"00000000-0000-0000-0000-000000000005","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000002"}]}]},"ListOverlaysResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PublicBrandingOverlayForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListOverlaysResponse","examples":[{"data":[{"file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}],"navigation":{"link_first":"https://example.org/v1/branding_overlays?page=1&items=20","link_last":"https://example.org/v1/branding_overlays?page=1&items=20","link_next":"https://example.org/v1/branding_overlays?page=1&items=20","link_prev":"https://example.org/v1/branding_overlays?page=1&items=20","total_elements":2}}]},"ListPlansResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/PlanForResponse"},"type":"array","title":"Data","description":"List of plans"}},"type":"object","required":["data"],"title":"ListPlansResponse","examples":[{"data":[{"content_indexing":true,"extras":{},"id":"00000000-0000-0000-0000-000000000001","interactive_agent":true,"is_trial":false,"metadata_generation":true,"monthly_limit_h":10,"name":"Basic","scene_face_analysis":true,"social_media_accounts_limit":4,"sound_detection":true,"storage_limit_gb":10,"translation_languages_limit":5,"turbo_mode":true,"video_clips":true,"video_compositions":true,"video_quality":"normal","voice_over_languages_limit":0}]}]},"ListProcessVoiceOverJobResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ProcessVoiceOverJobForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListProcessVoiceOverJobResponse","description":"Response class for list process voice over jobs API call.","examples":[{"data":[{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-00000000000a","state":"finished_ok"},{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-00000000000b","state":"running"}],"navigation":{"link_first":"https://example.org/v1/assets?page=1&items=20","link_last":"https://example.org/v1/assets?page=1&items=20","link_next":"https://example.org/v1/assets?page=1&items=20","link_prev":"https://example.org/v1/assets?page=1&items=20","total_elements":2}}]},"ListSocialMediaAccountsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SocialMediaAccountForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListSocialMediaAccountsResponse"},"ListSocialMediaPostsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SocialMediaPostForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListSocialMediaPostsResponse"},"ListSubtitleStylesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BrandingSubtitleStyleForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListSubtitleStylesResponse","examples":[{"data":[{"background_opacity":0.0,"font_family":"Arial","font_size_px":26,"font_weight":600,"id":"00000000-0000-0000-0000-000000000001","line_height":1.2,"name":"Example name","shadow_blur":0.0,"shadow_offset_x_px":1,"shadow_offset_y_px":1,"shadow_opacity_pct":1,"stroke_color":"#000000","stroke_thickness_px":0,"tenant_id":"00000000-0000-0000-0000-000000000001","text_color":"#6B1010","vertical_position_pct":0.1}],"navigation":{"link_first":"https://example.org/v1/branding_subtitle_styles?page=1&items=20","link_last":"https://example.org/v1/branding_subtitle_styles?page=1&items=20","link_next":"https://example.org/v1/branding_subtitle_styles?page=1&items=20","link_prev":"https://example.org/v1/branding_subtitle_styles?page=1&items=20","total_elements":2}}]},"ListTTSVoicesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TTSVoiceForUserResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListTTSVoicesResponse","examples":[{"data":[{"created_at":"2000-01-02T07:15:00","gender":"female","id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-00000000000a","name":"Sofía","tier":"basic","updated_at":"2020-01-02T07:15:00"}],"navigation":{"link_first":"http://example.com/v1/tts_voices?page=1&items=100","link_last":"http://example.com/v1/tts_voices?page=1&items=100","link_next":"http://example.com/v1/tts_voices?page=1&items=100","link_prev":"http://example.com/v1/tts_voices?page=1&items=100","total_elements":1}}]},"ListTemplatesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SimpleTemplateForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListTemplatesResponse","examples":[{"data":[{"blacklists":[],"created_at":"2026-09-01T10:26:57.475225Z","domain_dictionaries":[],"enabled_ocr":false,"id":"00000000-0000-0000-0000-000000000001","name":"Template 1","tenant_id":"00000000-0000-0000-0000-000000000001","translation_languages":[],"updated_at":"2026-09-01T10:26:57.475230Z","voice_over_config":{"clone_voice":false,"mute_original_voice":false},"voice_over_languages":[],"whitelists":[]},{"blacklists":[],"created_at":"2026-09-01T10:26:57.477615Z","domain_dictionaries":[],"enabled_ocr":true,"id":"00000000-0000-0000-0000-000000000002","name":"Template 2","tenant_id":"00000000-0000-0000-0000-000000000001","translation_languages":[],"updated_at":"2026-09-01T10:26:57.477620Z","voice_over_config":{"clone_voice":false,"mute_original_voice":false},"voice_over_languages":[],"whitelists":[]}],"navigation":{"link_first":"https://example.org/v1/templates/paginated?page=1&items=20","link_last":"https://example.org/v1/templates/paginated?page=1&items=20","link_next":"https://example.org/v1/templates/paginated?page=1&items=20","link_prev":"https://example.org/v1/templates/paginated?page=1&items=20","total_elements":10}}]},"ListTranscriptionsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SimpleTranscriptionForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListTranscriptionsResponse"},"ListVariantsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/BrandingVariantForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListVariantsResponse","examples":[{"data":[{"aspect_ratio":"16:9","branding_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","intro_overlap_ms":0,"outro_overlap_ms":0,"tenant_id":"00000000-0000-0000-0000-000000000001"}],"navigation":{"link_first":"https://example.org/v1/brandings/1/variants?page=1&items=20","link_last":"https://example.org/v1/brandings/1/variants?page=1&items=20","link_next":"https://example.org/v1/brandings/1/variants?page=1&items=20","link_prev":"https://example.org/v1/brandings/1/variants?page=1&items=20","total_elements":2}}]},"ListVideoClipDocumentsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DocumentForUserResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListVideoClipDocumentsResponse","examples":[{"data":[{"download_url":"https://example.com/documents/document.json","id":"00000000-0000-0000-0000-000000000001","name":"document.json"}],"navigation":{"link_first":"http://example.com/v1/video-clips/1/documents?page=1&items=100","link_last":"http://example.com/v1/video-clips/1/documents?page=1&items=100","link_next":"http://example.com/v1/video-clips/1/documents?page=1&items=100","link_prev":"http://example.com/v1/video-clips/1/documents?page=1&items=100","total_elements":1}}]},"ListWhitelistsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WhitelistForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ListWhitelistsResponse"},"ListWorkflowTriggersResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/WorkflowTriggerForUserResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListWorkflowTriggersResponse","examples":[{"data":[{"created_at":"2024-01-01T00:00:00","enabled":true,"event_id":"on_clip_rendered","id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000002","updated_at":"2024-01-01T00:00:00","workflow_id":"video_composition_with_silences"}],"navigation":{"link_first":"http://example.com/v1/workflow_triggers?page=1&items=100","link_last":"http://example.com/v1/workflow_triggers?page=1&items=100","link_next":"http://example.com/v1/workflow_triggers?page=1&items=100","link_prev":"http://example.com/v1/workflow_triggers?page=1&items=100","total_elements":1}}]},"ListZernioProfilesResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/ZernioProfileForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"ListZernioProfilesResponse"},"MetadataCategoriesValue":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MetadataCategoryItem"},"type":"array","title":"Items","description":"The categories"}},"type":"object","required":["items"],"title":"MetadataCategoriesValue"},"MetadataCategoryItem":{"properties":{"text":{"type":"string","title":"Text","description":"The category text"},"children":{"items":{"$ref":"#/components/schemas/MetadataCategoryItem"},"type":"array","title":"Children","description":"The category children"}},"type":"object","required":["text"],"title":"MetadataCategoryItem"},"MetadataEntitiesValue":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MetadataEntityItem"},"type":"array","title":"Items","description":"The entities"}},"type":"object","required":["items"],"title":"MetadataEntitiesValue"},"MetadataEntityItem":{"properties":{"text":{"type":"string","title":"Text","description":"The entity text"}},"type":"object","required":["text"],"title":"MetadataEntityItem"},"MetadataHighlightItem":{"properties":{"text":{"type":"string","title":"Text","description":"The highlight text"},"start_ms":{"type":"integer","minimum":0.0,"title":"Start Ms","description":"The highlight start time in milliseconds"},"end_ms":{"type":"integer","minimum":0.0,"title":"End Ms","description":"The highlight end time in milliseconds"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"The highlight tags"}},"type":"object","required":["text","start_ms","end_ms"],"title":"MetadataHighlightItem"},"MetadataHighlightsValue":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MetadataHighlightItem"},"type":"array","title":"Items","description":"The highlights"}},"type":"object","required":["items"],"title":"MetadataHighlightsValue"},"MetadataSentimentEmotion":{"properties":{"text":{"type":"string","title":"Text","description":"The emotion text"}},"type":"object","required":["text"],"title":"MetadataSentimentEmotion"},"MetadataSentimentValue":{"properties":{"polarity":{"type":"string","title":"Polarity","description":"The sentiment polarity"},"emotions":{"items":{"$ref":"#/components/schemas/MetadataSentimentEmotion"},"type":"array","title":"Emotions","description":"The sentiment emotions"}},"type":"object","required":["polarity","emotions"],"title":"MetadataSentimentValue"},"MetadataSummaryValue":{"properties":{"text":{"type":"string","title":"Text","description":"The summary text"}},"type":"object","required":["text"],"title":"MetadataSummaryValue"},"ModifySegmentPayload":{"properties":{"speaker_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Speaker Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"start_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Ms"},"end_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Ms"}},"additionalProperties":false,"type":"object","title":"ModifySegmentPayload"},"ModifySegmentResponse":{"properties":{"data":{"$ref":"#/components/schemas/SegmentForResponse"}},"type":"object","required":["data"],"title":"ModifySegmentResponse","examples":[{"data":{"end_ms":1500,"id":"00000000-0000-0000-0000-000000000001","speaker_id":"00000000-0000-0000-0000-000000000001","start_ms":0,"text":"Example text","translation_pending":false}}]},"ModifySegmentsPayload":{"properties":{"segments":{"items":{"$ref":"#/components/schemas/SegmentForUpdate"},"type":"array","title":"Segments"}},"additionalProperties":false,"type":"object","required":["segments"],"title":"ModifySegmentsPayload"},"ModifySegmentsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SegmentForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"ModifySegmentsResponse","examples":[{"data":[{"end_ms":1500,"id":"00000000-0000-0000-0000-000000000001","speaker_id":"00000000-0000-0000-0000-000000000001","start_ms":0,"text":"Example text","translation_pending":false}]}]},"ModifySpeakerPayload":{"properties":{"name":{"type":"string","title":"Name"}},"additionalProperties":false,"type":"object","required":["name"],"title":"ModifySpeakerPayload"},"ModifySpeakerResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullSpeakerForResponse"}},"type":"object","required":["data"],"title":"ModifySpeakerResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","name":"example__new_name"}}]},"MultiModalSearchPayload":{"properties":{"asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Asset Ids"},"query_text":{"type":"string","title":"Query Text"},"search_type":{"items":{"$ref":"#/components/schemas/EmbeddingsSearchType"},"type":"array","title":"Search Type"},"max_results":{"type":"integer","title":"Max Results","default":10}},"additionalProperties":false,"type":"object","required":["query_text"],"title":"MultiModalSearchPayload"},"MultiModalSearchResponse":{"properties":{"data":{"$ref":"#/components/schemas/MultiModalSearchResults"}},"type":"object","required":["data"],"title":"MultiModalSearchResponse"},"MultiModalSearchResult":{"properties":{"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"asset_filename":{"type":"string","title":"Asset Filename"},"asset_type":{"type":"string","title":"Asset Type"},"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"text":{"type":"string","title":"Text"},"score":{"type":"number","title":"Score"},"source_type":{"items":{"$ref":"#/components/schemas/EmbeddingsSourceType"},"type":"array","title":"Source Type"}},"type":"object","required":["tenant_id","asset_id","asset_filename","asset_type","start_ms","end_ms","text","score","source_type"],"title":"MultiModalSearchResult"},"MultiModalSearchResults":{"properties":{"sources":{"items":{"$ref":"#/components/schemas/MultiModalSearchResult"},"type":"array","title":"Sources"}},"type":"object","required":["sources"],"title":"MultiModalSearchResults"},"OutputVideoQuality":{"type":"string","enum":["normal","high"],"title":"OutputVideoQuality"},"PageNavigation":{"properties":{"link_first":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Link First"},"link_last":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Link Last"},"link_prev":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Link Prev"},"link_next":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Link Next"},"total_elements":{"type":"integer","title":"Total Elements"}},"type":"object","required":["link_first","link_last","link_prev","link_next","total_elements"],"title":"PageNavigation"},"PartialRetranslationJobForResponse":{"properties":{"segment_ids":{"items":{"type":"string"},"type":"array","title":"Segment Ids"},"job_id":{"type":"string","format":"uuid","title":"Job Id","description":"ID of the associated Job"},"state":{"$ref":"#/components/schemas/JobState","description":"State of the job"}},"type":"object","required":["job_id","state"],"title":"PartialRetranslationJobForResponse","description":"The API output model for PartialRetranslationJob."},"PartialRetranslationJobResponse":{"properties":{"data":{"$ref":"#/components/schemas/PartialRetranslationJobForResponse"}},"type":"object","required":["data"],"title":"PartialRetranslationJobResponse","examples":[{"data":{"job_id":"00000000-0000-0000-0000-000000000001","segment_ids":["00000000-0000-0000-0000-000000000001","00000000-0000-0000-0000-000000000002"],"state":"queued"}}]},"PlanForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Plan ID"},"name":{"type":"string","title":"Name","description":"Name of the plan"},"monthly_limit_h":{"type":"integer","title":"Monthly Limit H","description":"Maximum monthly consumption hours allowed"},"storage_limit_gb":{"type":"integer","title":"Storage Limit Gb","description":"Maximum storage in gigabytes allowed (total)"},"translation_languages_limit":{"type":"integer","title":"Translation Languages Limit","description":"Number of languages available for translation"},"voice_over_languages_limit":{"type":"integer","title":"Voice Over Languages Limit","description":"Number of languages available for voice over; 0 means that the user cannot use voice over"},"sound_detection":{"type":"boolean","title":"Sound Detection","description":"Indicates if sound detection is active on the plan"},"is_trial":{"type":"boolean","title":"Is Trial","description":"Indicates if this is a demo plan"},"extras":{"additionalProperties":true,"type":"object","title":"Extras","description":"Plan extras"},"video_quality":{"$ref":"#/components/schemas/OutputVideoQuality","description":"Quality of the output video after asset transcodification"},"social_media_accounts_limit":{"type":"integer","title":"Social Media Accounts Limit","description":"Maximum number of social media accounts allowed per tenant"},"video_clips":{"type":"boolean","title":"Video Clips","description":"Indicates if video clips are available on the plan"},"video_compositions":{"type":"boolean","title":"Video Compositions","description":"Indicates if video compositions are available on the plan"},"scene_face_analysis":{"type":"boolean","title":"Scene Face Analysis","description":"Indicates if scene and face analysis is available on the plan"},"content_indexing":{"type":"boolean","title":"Content Indexing","description":"Indicates if content indexing (embeddings and search) is available on the plan"},"metadata_generation":{"type":"boolean","title":"Metadata Generation","description":"Indicates if metadata generation is available on the plan"},"interactive_agent":{"type":"boolean","title":"Interactive Agent","description":"Indicates if the interactive agent is available on the plan"},"turbo_mode":{"type":"boolean","title":"Turbo Mode","description":"Indicates if turbo mode is available on the plan"}},"type":"object","required":["id","name","monthly_limit_h","storage_limit_gb","translation_languages_limit","voice_over_languages_limit","sound_detection","is_trial","video_quality","social_media_accounts_limit","video_clips","video_compositions","scene_face_analysis","content_indexing","metadata_generation","interactive_agent","turbo_mode"],"title":"PlanForResponse"},"ProcessVoiceOverJobForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique ID of this entity"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The asset ID this job is associated with"},"state":{"$ref":"#/components/schemas/JobState","description":"State of this job, which matches the state of the low level associated job"}},"type":"object","required":["id","asset_id","state"],"title":"ProcessVoiceOverJobForResponse","description":"The public response class for ProcessVoiceOverJob entities."},"PublicAudioTrackForResponse":{"properties":{"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"ID of the associated asset"},"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"ID of the language of this track"},"up_to_date":{"type":"boolean","title":"Up To Date","description":"Indicates whether the audio track is updated with respect to its corresponding translation","default":true},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time of creation"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time of the last update in the system"},"id":{"type":"string","format":"uuid","title":"Id","description":"Audio track ID"}},"type":"object","required":["asset_id","language_id","id"],"title":"PublicAudioTrackForResponse","description":"Audio track response class for public API calls; to be shown to users."},"PublicBrandingClipForResponse":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the branding clip"},"file_name":{"type":"string","title":"File Name","description":"Name of the file used in the clip"},"width_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width Px","description":"Width of the clip, in pixels"},"height_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height Px","description":"Height of the clip, in pixels"},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms","description":"Duration of the clip in milliseconds. Shown to user but only editable by admin"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant this clip belongs to"},"id":{"type":"string","format":"uuid","title":"Id","description":"Branding clip ID"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url","description":"Signed URL to access the clip file; null if not uploaded yet"}},"type":"object","required":["name","file_name","tenant_id","id"],"title":"PublicBrandingClipForResponse"},"PublicBrandingOverlayForResponse":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the branding overlay"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","description":"Name of the file used in the overlay"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant to which this overlay belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Branding overlay ID"},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url","description":"Signed URL to access the overlay file; null if not uploaded yet"}},"type":"object","required":["name","tenant_id","id"],"title":"PublicBrandingOverlayForResponse"},"RemoveAssetFromCollectionPayload":{"properties":{"asset_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Asset Ids","description":"List of asset IDs to remove from the collection"}},"additionalProperties":false,"type":"object","required":["asset_ids"],"title":"RemoveAssetFromCollectionPayload"},"RemoveAssetFromCollectionResponse":{"properties":{"removed":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Removed","description":"List of asset IDs that were successfully removed"},"not_removed":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Not Removed","description":"List of asset IDs that were not removed due to errors"}},"type":"object","required":["removed","not_removed"],"title":"RemoveAssetFromCollectionResponse"},"RenderVideoCompositionResponse":{"properties":{"job_id":{"type":"string","format":"uuid","title":"Job Id"},"state":{"$ref":"#/components/schemas/JobState"}},"type":"object","required":["job_id","state"],"title":"RenderVideoCompositionResponse","examples":[{"job_id":"550e8400-e29b-41d4-a716-446655440000","state":"created"}]},"ReturnFaceResponse":{"properties":{"data":{"$ref":"#/components/schemas/FaceResponsePayload"}},"type":"object","required":["data"],"title":"ReturnFaceResponse","examples":[{"data":{"face":[{"asset_id":"00000000-0000-0000-0000-000000000001","bounding_box":{"height":75,"width":50,"x":100,"y":200},"confidence":0.95,"created_at":"2024-01-01T12:00:00Z","id":"face_1","start_ms":500}]}}]},"ReturnShootResponse":{"properties":{"data":{"$ref":"#/components/schemas/CameraShootResponsePayload"}},"type":"object","required":["data"],"title":"ReturnShootResponse","examples":[{"data":{"camera_shoots":[{"asset_id":"00000000-0000-0000-0000-000000000001","created_at":"2024-01-01T12:00:00Z","end_ms":1000,"id":1,"start_ms":0}]}}]},"SQLModel":{"properties":{},"type":"object","title":"SQLModel"},"SegmentAutocentersForResponse":{"properties":{"duration_frames":{"type":"integer","title":"Duration Frames"},"autocenters":{"items":{"$ref":"#/components/schemas/AutocenterForResponse"},"type":"array","title":"Autocenters"}},"type":"object","required":["duration_frames","autocenters"],"title":"SegmentAutocentersForResponse"},"SegmentForResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Segment ID; cannot be null"},"speaker_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Speaker Id","description":"The speaker associated with this segment"},"text":{"type":"string","title":"Text","description":"The text of this segment"},"start_ms":{"type":"integer","title":"Start Ms","description":"Start of the segment, in milliseconds"},"end_ms":{"type":"integer","title":"End Ms","description":"End of the segment, in milliseconds"},"translation_pending":{"type":"boolean","title":"Translation Pending","description":"True when the segment has been manually modified but not translated yet","default":false}},"type":"object","required":["speaker_id","text","start_ms","end_ms"],"title":"SegmentForResponse"},"SegmentForUpdate":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"speaker_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Speaker Id"},"start_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Ms"},"end_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Ms"}},"additionalProperties":false,"type":"object","required":["id"],"title":"SegmentForUpdate"},"SimpleAssetForResponse":{"additionalProperties":true,"type":"object"},"SimpleAssetMetadataForResponse":{"properties":{"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"The language of this metadata entry"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The asset to which this metadata belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Metadata ID"}},"type":"object","required":["language_id","asset_id","id"],"title":"SimpleAssetMetadataForResponse"},"SimpleTemplateForResponse":{"properties":{"name":{"type":"string","title":"Name","description":"Name of the template"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"Tenant ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date of creation of the model"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date in which the model was updated"},"id":{"type":"string","format":"uuid","title":"Id","description":"ID of the Template"},"blacklists":{"items":{"$ref":"#/components/schemas/BlacklistForResponse"},"type":"array","title":"Blacklists","description":"List of associated blacklists"},"whitelists":{"items":{"$ref":"#/components/schemas/WhitelistForResponse"},"type":"array","title":"Whitelists","description":"List of associated whitelists"},"domain_dictionaries":{"items":{"$ref":"#/components/schemas/DomainDictionaryForResponse"},"type":"array","title":"Domain Dictionaries","description":"Associated domain dictionaries"},"translation_languages":{"items":{"$ref":"#/components/schemas/Language"},"type":"array","title":"Translation Languages","description":"Languages into which assets will be translated"},"voice_over_languages":{"items":{"$ref":"#/components/schemas/Language"},"type":"array","title":"Voice Over Languages","description":"Languages into which assets will be dubbed","deprecated":true},"enabled_ocr":{"type":"boolean","title":"Enabled Ocr","description":"Whether OCR (Optical Character Recognition) is enabled for this template","default":false},"voice_over_config":{"$ref":"#/components/schemas/VoiceOverConfig","description":"Voice over configuration","deprecated":true}},"type":"object","required":["name","tenant_id","created_at","updated_at","id"],"title":"SimpleTemplateForResponse"},"SimpleTranscriptionForResponse":{"properties":{"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id","description":"Transcription ID; cannot be null"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"The asset to which this transcription belongs"},"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"The language of this transcription"},"transcription_type":{"$ref":"#/components/schemas/TranscriptionType","description":"Type of transcription (original or translation)"}},"type":"object","required":["asset_id","language_id","transcription_type"],"title":"SimpleTranscriptionForResponse"},"SocialMediaAccountForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Social media account ID"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant this account belongs to"},"platform":{"$ref":"#/components/schemas/SocialMediaPlatform","description":"Social media platform"},"platform_username":{"type":"string","title":"Platform Username","description":"Username on the social media platform"},"zernio_profile_id":{"type":"string","title":"Zernio Profile Id","description":"Zernio profile ID associated with this account"},"zernio_account_id":{"type":"string","title":"Zernio Account Id","description":"Zernio account ID for this connected account"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time when this account was connected"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time when this account was last updated"},"health_status":{"$ref":"#/components/schemas/AccountHealthStatus","description":"Connection health of the account: CONNECTED, NEEDS_RECONNECTION, or HEALTH_CHECK_ERROR when the health could not be determined"}},"type":"object","required":["id","tenant_id","platform","platform_username","zernio_profile_id","zernio_account_id","created_at","updated_at","health_status"],"title":"SocialMediaAccountForResponse","description":"Response model for `SocialMediaAccount`."},"SocialMediaPlatform":{"type":"string","enum":["instagram","tiktok","facebook","youtube","twitter","linkedin","pinterest","reddit","bluesky","threads","google_business","telegram","snapchat"],"title":"SocialMediaPlatform"},"SocialMediaPostForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Social media post ID"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant this post belongs to"},"social_media_account_id":{"type":"string","format":"uuid","title":"Social Media Account Id","description":"ID of the social media account used to publish this post"},"status":{"$ref":"#/components/schemas/SocialMediaPostStatus","description":"Current status of the post"},"failed_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failed Reason","description":"Reason for failure, if the post failed"},"platform_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Url","description":"URL of the post on the social media platform"},"caption":{"type":"string","title":"Caption","description":"Caption or text body of the post"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"UTC datetime when the post is scheduled to be published"},"source":{"oneOf":[{"$ref":"#/components/schemas/SocialMediaPostVideoClipSource"},{"$ref":"#/components/schemas/SocialMediaPostVideoCompositionSource"}],"title":"Source","description":"Source content that was published (video clip or video composition)","discriminator":{"propertyName":"type","mapping":{"video_clip":"#/components/schemas/SocialMediaPostVideoClipSource","video_composition":"#/components/schemas/SocialMediaPostVideoCompositionSource"}}},"platform_options":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/YouTubePostOptions"},{"$ref":"#/components/schemas/TwitterPostOptions"},{"$ref":"#/components/schemas/ThreadsPostOptions"}],"discriminator":{"propertyName":"platform","mapping":{"threads":"#/components/schemas/ThreadsPostOptions","twitter":"#/components/schemas/TwitterPostOptions","youtube":"#/components/schemas/YouTubePostOptions"}}},{"type":"null"}],"title":"Platform Options","description":"Platform-specific publish options (e.g. YouTube visibility)"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time when this post was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time when this post was last updated"}},"type":"object","required":["id","tenant_id","social_media_account_id","status","caption","source","created_at","updated_at"],"title":"SocialMediaPostForResponse","description":"Response model for `SocialMediaPost`."},"SocialMediaPostStatus":{"type":"string","enum":["pending","scheduled","published","failed"],"title":"SocialMediaPostStatus"},"SocialMediaPostVideoClipSource":{"properties":{"type":{"type":"string","const":"video_clip","title":"Type","default":"video_clip"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"video_clip_id":{"type":"string","format":"uuid","title":"Video Clip Id"}},"type":"object","required":["asset_id","video_clip_id"],"title":"SocialMediaPostVideoClipSource"},"SocialMediaPostVideoCompositionSource":{"properties":{"type":{"type":"string","const":"video_composition","title":"Type","default":"video_composition"},"video_composition_id":{"type":"string","format":"uuid","title":"Video Composition Id"},"render_job_id":{"type":"string","format":"uuid","title":"Render Job Id"}},"type":"object","required":["video_composition_id","render_job_id"],"title":"SocialMediaPostVideoCompositionSource"},"SoundDescriptionDetailResponse":{"properties":{"data":{"$ref":"#/components/schemas/SoundDescriptionForResponse"}},"type":"object","required":["data"],"title":"SoundDescriptionDetailResponse"},"SoundDescriptionForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"ID of the Sound Description"},"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"The language of the sound"},"sound":{"type":"string","title":"Sound","description":"Sound detected on the audio"},"start_ms":{"type":"integer","title":"Start Ms","description":"Start timestamp in milliseconds"},"end_ms":{"type":"integer","title":"End Ms","description":"End timestamp in milliseconds"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Time the object was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Time the object was updated"}},"type":"object","required":["id","language_id","sound","start_ms","end_ms","created_at","updated_at"],"title":"SoundDescriptionForResponse"},"SoundDescriptionListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/SoundDescriptionForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"SoundDescriptionListResponse","examples":[{"data":[{"asset_id":"00000000-0000-0000-0000-000000000001","created_at":"2025-05-28T10:30:00Z","end_ms":1537,"id":"00000000-0000-0000-0000-000000000001","sound":"Music","start_ms":1421,"updated_at":"2025-05-28T10:30:00Z"}]}]},"SpeakerVoiceConfig":{"properties":{"voice_id":{"type":"string","format":"uuid","title":"Voice Id","description":"Public MediaCopilot ID of the TTS voice selected for this speaker."}},"type":"object","required":["voice_id"],"title":"SpeakerVoiceConfig","description":"Voice configuration selected for a single speaker in a voice-over job."},"SpeakersConfig":{"additionalProperties":{"$ref":"#/components/schemas/SpeakerVoiceConfig"},"propertyNames":{"format":"uuid"},"type":"object","title":"SpeakersConfig","description":"Mapping from a transcription speaker ID to its selected voice configuration.\n\nKeys are the speaker IDs present in the transcription/translation and values\nhold the voice configuration chosen for each of them. There is always exactly one\nvoice per speaker, and every speaker in the transcription must be present here.\n\nThis class is a Pydantic `RootModel`: instead of a set of named fields it validates a\nsingle value, which lives in the `root` attribute. It is therefore built from the bare\nmapping (`SpeakersConfig({speaker_id: config})`) and read through `.root`, as root models\ndo not provide `__iter__` or `__getitem__` by default. The `default_factory` on `root` is\nwhat allows an empty instance with `SpeakersConfig()`, which a root model would otherwise\nexpect positionally.\n\nA root model also validates and serializes as the bare value, with no wrapper key:\n`model_dump()` returns the plain dict and the generated JSON schema is a plain object.\nThat is what lets the same class be used both as the value stored in the JSONB column and\nas the public API representation.\n\nSee https://docs.pydantic.dev/latest/concepts/models/#rootmodel-and-custom-root-types"},"StartClipUploadInfo":{"properties":{"urls":{"items":{"type":"string"},"type":"array","title":"Urls"}},"type":"object","required":["urls"],"title":"StartClipUploadInfo"},"StartClipUploadPayload":{"properties":{"parts":{"type":"integer","title":"Parts","description":"The number of parts that the client will split the file to upload it.","default":1}},"additionalProperties":false,"type":"object","title":"StartClipUploadPayload","examples":[{"parts":1}]},"StartClipUploadResponse":{"properties":{"data":{"$ref":"#/components/schemas/StartClipUploadInfo"}},"type":"object","required":["data"],"title":"StartClipUploadResponse","examples":[{"data":{"urls":["https://media-copilot-uploads.s3.amazonaws.com/filename.mp4"]}}]},"StartOverlayUploadInfo":{"properties":{"urls":{"items":{"type":"string"},"type":"array","title":"Urls"}},"type":"object","required":["urls"],"title":"StartOverlayUploadInfo"},"StartOverlayUploadPayload":{"properties":{"parts":{"type":"integer","title":"Parts","description":"The number of parts that the client will split the file to upload id.","default":1}},"additionalProperties":false,"type":"object","title":"StartOverlayUploadPayload","examples":[{"parts":1}]},"StartOverlayUploadResponse":{"properties":{"data":{"$ref":"#/components/schemas/StartOverlayUploadInfo"}},"type":"object","required":["data"],"title":"StartOverlayUploadResponse","examples":[{"data":{"urls":["https://media-copilot-uploads.s3.amazonaws.com/filename.mp4"]}}]},"StartUploadInfo":{"properties":{"urls":{"items":{"type":"string"},"type":"array","title":"Urls"}},"type":"object","required":["urls"],"title":"StartUploadInfo"},"StartUploadPayload":{"properties":{"parts":{"type":"integer","title":"Parts","description":"The number of parts that the client will split the file to upload id.","default":1}},"additionalProperties":false,"type":"object","title":"StartUploadPayload"},"StartUploadResponse":{"properties":{"data":{"$ref":"#/components/schemas/StartUploadInfo"}},"type":"object","required":["data"],"title":"StartUploadResponse","examples":[{"data":{"urls":["https://media-copilot-uploads.s3.amazonaws.com/filename.mp4"]}}]},"TTSVoiceForUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Public MediaCopilot voice ID"},"name":{"type":"string","title":"Name","description":"Human readable name of the voice"},"gender":{"$ref":"#/components/schemas/VoiceGender","description":"Gender of the voice"},"tier":{"$ref":"#/components/schemas/TTSVoiceTier","description":"Tier of the voice; indicates its relative cost"},"language_id":{"type":"string","format":"uuid","title":"Language Id","description":"ID of the language this voice is able to speak"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time when this voice was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time when this voice was last updated"}},"type":"object","required":["id","name","gender","tier","language_id","created_at","updated_at"],"title":"TTSVoiceForUserResponse","description":"Response model for users for the `TTSVoice` model.\n\nHides the provider and the provider-specific voice ID from regular API users."},"TTSVoiceTier":{"type":"string","enum":["basic","pro"],"title":"TTSVoiceTier","description":"The different tiers for TTS voices.\n\nPro voices are more costly than basic voices."},"ThreadsPostOptions":{"properties":{"platform":{"type":"string","const":"threads","title":"Platform","default":"threads"},"topic_tag":{"anyOf":[{"type":"string","maxLength":50,"minLength":1,"pattern":"^[^.&]+$"},{"type":"null"}],"title":"Topic Tag","description":"Threads topic tag (native hashtag-style label). 1-50 characters, no periods or ampersands. Omit for none."},"thread_items":{"anyOf":[{"items":{"type":"string","maxLength":500,"minLength":1},"type":"array","minItems":1},{"type":"null"}],"title":"Thread Items","description":"Chained reply posts published after the root post, forming a thread. Each reply is up to 500 characters. Omit for a single post."}},"type":"object","title":"ThreadsPostOptions"},"TrackAutocentersForResponse":{"properties":{"name":{"type":"string","title":"Name"},"segments":{"items":{"$ref":"#/components/schemas/SegmentAutocentersForResponse"},"type":"array","title":"Segments"}},"type":"object","required":["name","segments"],"title":"TrackAutocentersForResponse"},"TranscriptionType":{"type":"string","enum":["original","translation"],"title":"TranscriptionType"},"TranslationJobForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Unique identifier for the translation job"},"state":{"$ref":"#/components/schemas/JobState","description":"The current state of the job"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time of creation"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time of the last update"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At","description":"Date and time when the job started"},"finished_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Finished At","description":"Date and time when the job finished"},"target_languages":{"items":{"$ref":"#/components/schemas/LanguageForResponse"},"type":"array","title":"Target Languages","description":"List of target languages for this translation job"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id","description":"ID of the asset associated to this job"}},"type":"object","required":["id","state","created_at","updated_at","started_at","finished_at","target_languages","asset_id"],"title":"TranslationJobForResponse","description":"API output model for translation jobs."},"TwitterPostOptions":{"properties":{"platform":{"type":"string","const":"twitter","title":"Platform","default":"twitter"},"geo_restriction_countries":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":25,"minItems":1},{"type":"null"}],"title":"Geo Restriction Countries","description":"ISO 3166-1 alpha-2 country codes (uppercase) where the post is visible. Zernio geo-restriction allow-list; max 25. Omit for no restriction."}},"type":"object","title":"TwitterPostOptions"},"UpdateBlacklistPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"words":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Words"},"language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"string"},{"type":"null"}],"title":"Language Id"}},"additionalProperties":false,"type":"object","title":"UpdateBlacklistPayload","examples":[{"language_id":"en","name":"Updated Profanity Filter","words":["badword1","badword2","badword3"]}]},"UpdateBlacklistResponse":{"properties":{"data":{"$ref":"#/components/schemas/BlacklistForResponse"}},"type":"object","required":["data"],"title":"UpdateBlacklistResponse"},"UpdateBrandingPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"New name for the branding"},"subtitle_style_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitle Style Id","description":"ID of the subtitle style used in this branding"},"safe_area_top_pct":{"anyOf":[{"type":"number","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Safe Area Top Pct","description":"Top safe-area inset as a percentage of the frame height (0 = no margin)"},"safe_area_right_pct":{"anyOf":[{"type":"number","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Safe Area Right Pct","description":"Right safe-area inset as a percentage of the frame width (0 = no margin)"},"safe_area_bottom_pct":{"anyOf":[{"type":"number","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Safe Area Bottom Pct","description":"Bottom safe-area inset as a percentage of the frame height (0 = no margin)"},"safe_area_left_pct":{"anyOf":[{"type":"number","maximum":5.0,"minimum":0.0},{"type":"null"}],"title":"Safe Area Left Pct","description":"Left safe-area inset as a percentage of the frame width (0 = no margin)"}},"additionalProperties":false,"type":"object","title":"UpdateBrandingPayload","examples":[{"name":"My branding","subtitle_style_id":1}]},"UpdateBrandingResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingForResponse"}},"type":"object","required":["data"],"title":"UpdateBrandingResponse","examples":[{"data":{"id":"00000000-0000-0000-0000-000000000001","name":"Example name","safe_area_bottom_pct":0.0,"safe_area_left_pct":0.0,"safe_area_right_pct":0.0,"safe_area_top_pct":0.0,"subtitle_style_id":"00000000-0000-0000-0000-000000000001","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"UpdateClipPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for the branding clip"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","description":"Name of the file used in the clip"}},"additionalProperties":false,"type":"object","title":"UpdateClipPayload","examples":[{"file_name":"my_file_name","name":"My clip"}]},"UpdateClipResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicBrandingClipForResponse"}},"type":"object","required":["data"],"title":"UpdateClipResponse","examples":[{"data":{"file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"UpdateCollectionPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The new name of the collection"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"The ID of the new template. Only use for sugestions is MediaCopilot front."}},"additionalProperties":false,"type":"object","title":"UpdateCollectionPayload"},"UpdateCollectionResponse":{"properties":{"data":{"$ref":"#/components/schemas/CollectionForResponse"}},"type":"object","required":["data"],"title":"UpdateCollectionResponse","examples":[{"data":{"cover_info":{"assets_info":[{"asset_type":"audio_only"}]},"created_at":"2026-09-01T10:26:57.586136Z","id":"00000000-0000-0000-0000-000000000001","name":"Updated Collection","template_id":"00000000-0000-0000-0000-000000000002","tenant_id":"00000000-0000-0000-0000-000000000001","thumbnails":["https://mam.saas.example.org/1/poster.jpeg"],"updated_at":"2026-09-01T10:26:57.586139Z"}}]},"UpdateDictionaryPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"dictionary":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Dictionary"}},"additionalProperties":false,"type":"object","title":"UpdateDictionaryPayload","examples":[{"dictionary":{"AI":["Artificial Intelligence","Machine Learning","Deep Learning"]},"name":"Updated Technical Terms"}]},"UpdateDictionaryResponse":{"properties":{"data":{"$ref":"#/components/schemas/DomainDictionaryForResponse"}},"type":"object","required":["data"],"title":"UpdateDictionaryResponse"},"UpdateExternalStoragePayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the new external storage"},"type":{"anyOf":[{"$ref":"#/components/schemas/ExternalStorageType"},{"type":"null"}],"description":"The type of the external storage"},"destination":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Destination","description":"Destination data as JSON. Required fields depend on the type:\n- AWS_S3: `bucket_name`, `region`.\n- AZURE: `blob_url`.\n- GCP_STORAGE: `bucket_name`."},"export_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Path","description":"The specific path to export the data. It can follow a template. Available keys: `{asset_id}`, `{asset_external_id}`, `{video_clip_id}`. Ex: `/path/{asset_id}`"},"authentication_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Authentication Data","description":"Authentication data as JSON. Required fields depend on the type:\n- AWS_S3: `iam_role_arn` (to be assumed in the customer's account).\n- AZURE: `sas_token` (Shared Access Signature for authentication).\n- GCP_STORAGE: `credentials` (JSON service account credentials)."}},"additionalProperties":false,"type":"object","title":"UpdateExternalStoragePayload","examples":[{"name":"Updated name"}]},"UpdateExternalStorageResponse":{"properties":{"data":{"$ref":"#/components/schemas/ExternalStorageForResponse"}},"type":"object","required":["data"],"title":"UpdateExternalStorageResponse","examples":[{"data":{"destination":{"bucket":"destination_bucket"},"export_path":"/personal/repository","id":"00000000-0000-0000-0000-000000000001","name":"Updated name","type":"DUMMY"}}]},"UpdateFilterViewResponse":{"properties":{"data":{"$ref":"#/components/schemas/FilterForResponse"}},"type":"object","required":["data"],"title":"UpdateFilterViewResponse","examples":[{"data":{"created_at":"2025-06-19T10:30:00Z","filter_params":[{"name":"entities","operator":"ilike","value":"%.mp4"},{"name":"entities","operator":"ilike","value":"%.mov"}],"id":"00000000-0000-0000-0000-000000000001","name":"MP4 and MOV Files","tenant_id":"00000000-0000-0000-0000-000000000001","updated_at":"2025-06-19T11:45:00Z","user_id":"00000000-0000-0000-0000-000000000001"}}]},"UpdateMetadataPayload":{"properties":{"summary":{"anyOf":[{"$ref":"#/components/schemas/MetadataSummaryValue"},{"type":"null"}],"description":"New value for the summary field"},"entities":{"anyOf":[{"$ref":"#/components/schemas/MetadataEntitiesValue"},{"type":"null"}],"description":"New value for the entities field"},"highlights":{"anyOf":[{"$ref":"#/components/schemas/MetadataHighlightsValue"},{"type":"null"}],"description":"New value for the highlights field"},"sentiment":{"anyOf":[{"$ref":"#/components/schemas/MetadataSentimentValue"},{"type":"null"}],"description":"New value for the sentiment field"},"categories":{"anyOf":[{"$ref":"#/components/schemas/MetadataCategoriesValue"},{"type":"null"}],"description":"New value for the categories field"}},"additionalProperties":false,"type":"object","title":"UpdateMetadataPayload","examples":[{"highlights":{"items":[{"end_ms":2000,"start_ms":1000,"tags":["tag 1","tag 2"],"text":"Highlight text"}]}}]},"UpdateMetadataResponse":{"properties":{"data":{"$ref":"#/components/schemas/FullAssetMetadataForResponse"}},"type":"object","required":["data"],"title":"UpdateMetadataResponse","examples":[{"data":{"asset_id":"00000000-0000-0000-0000-000000000005","fields":[{"id":"00000000-0000-0000-0000-000000000001","name":"highlights","value":{"items":[{"end_ms":2000,"start_ms":1000,"tags":["tag 1"],"text":"Highlight text"}]}}],"id":"00000000-0000-0000-0000-000000000001","language_id":"00000000-0000-0000-0000-000000000001"}}]},"UpdateOverlayPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for the branding overlay"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name","description":"Name of the file used for this overlay"}},"additionalProperties":false,"type":"object","title":"UpdateOverlayPayload","examples":[{"file_name":"my_file_name","name":"My overlay"}]},"UpdateOverlayResponse":{"properties":{"data":{"$ref":"#/components/schemas/PublicBrandingOverlayForResponse"}},"type":"object","required":["data"],"title":"UpdateOverlayResponse","examples":[{"data":{"file_name":"Example_filename","id":"00000000-0000-0000-0000-000000000001","name":"Example name","tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"UpdateSubtitleStylePayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the subtitle style"},"font_family":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Font Family","description":"Name of the font used for the subtitle"},"font_size_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Font Size Px","description":"Font size in pixels"},"font_weight":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Font Weight","description":"Thickness of the subtitle font"},"line_height":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Line Height","description":"Height of the subtitle line"},"vertical_position_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vertical Position Pct","description":"Vertical position for the subtitles in percentage of total video height"},"text_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Color","description":"Hexadecimal value for the font color"},"shadow_blur":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Blur","description":"Shadow blur"},"shadow_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shadow Color","description":"Hexadecimal value for the shadow color"},"shadow_opacity_pct":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Shadow Opacity Pct","description":"Opacity of the shadow in percentage"},"shadow_offset_x_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shadow Offset X Px","description":"Offset of the shadow in the X axis in pixels"},"shadow_offset_y_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Shadow Offset Y Px","description":"Offset of the shadow in the Y axis in pixels"},"background_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color","description":"Hexadecimal value for the background color"},"background_opacity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Background Opacity","description":"Opacity of the background (from 0 to 1)"},"stroke_color":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stroke Color","description":"Hexadecimal value for the stroke color"},"stroke_thickness_px":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Stroke Thickness Px","description":"Thickness of the stroke, in pixels"}},"additionalProperties":false,"type":"object","title":"UpdateSubtitleStylePayload","examples":[{"font_family":"Arial","name":"My subtitle style","text_color":"#050B07"}]},"UpdateSubtitleStyleResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingSubtitleStyleForResponse"}},"type":"object","required":["data"],"title":"UpdateSubtitleStyleResponse","examples":[{"data":{"background_opacity":0.0,"font_family":"Arial","font_size_px":26,"font_weight":600,"id":"00000000-0000-0000-0000-000000000001","line_height":1.2,"name":"Example name","shadow_blur":0.0,"shadow_offset_x_px":1,"shadow_offset_y_px":1,"shadow_opacity_pct":1,"stroke_color":"#000000","stroke_thickness_px":0,"tenant_id":"00000000-0000-0000-0000-000000000001","text_color":"#6B1010","vertical_position_pct":0.1}}]},"UpdateTemplatePayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"domain_dictionary_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Domain Dictionary Ids"},"blacklist_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Blacklist Ids"},"whitelist_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Whitelist Ids"},"translation_language_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Translation Language Ids"},"voice_over_language_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Voice Over Language Ids","deprecated":true},"enabled_ocr":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled Ocr"},"voice_over_config":{"anyOf":[{"$ref":"#/components/schemas/VoiceOverConfig"},{"type":"null"}],"description":"Voice over additional configuration","deprecated":true}},"additionalProperties":false,"type":"object","title":"UpdateTemplatePayload"},"UpdateTemplateResponse":{"properties":{"data":{"$ref":"#/components/schemas/SimpleTemplateForResponse"}},"type":"object","required":["data"],"title":"UpdateTemplateResponse"},"UpdateVariantPayload":{"properties":{"aspect_ratio":{"anyOf":[{"$ref":"#/components/schemas/BrandingAspectRatio"},{"type":"null"}],"description":"Aspect ratio used in this variant. Two variants of the same branding can't have the same aspect ratio"},"overlay_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Overlay Id","description":"ID of the overlay used in this branding, if any"},"intro_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Intro Id","description":"ID of the clip used as intro in this branding, if any"},"outro_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Outro Id","description":"ID of the clip used as outro in this branding, if any"},"intro_overlap_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Intro Overlap Ms","description":"Milliseconds the intro overlaps the start of the content (0 = no overlap)"},"outro_overlap_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Outro Overlap Ms","description":"Milliseconds the outro overlaps the end of the content (0 = no overlap)"}},"additionalProperties":false,"type":"object","title":"UpdateVariantPayload","examples":[{"aspect_ratio":"16:9","intro_id":"00000000-0000-0000-0000-000000000002","outro_id":"00000000-0000-0000-0000-000000000003","overlay_id":"00000000-0000-0000-0000-000000000001"}]},"UpdateVariantResponse":{"properties":{"data":{"$ref":"#/components/schemas/BrandingVariantForResponse"}},"type":"object","required":["data"],"title":"UpdateVariantResponse","examples":[{"data":{"aspect_ratio":"16:9","branding_id":"00000000-0000-0000-0000-000000000001","id":"00000000-0000-0000-0000-000000000001","intro_overlap_ms":0,"outro_overlap_ms":0,"tenant_id":"00000000-0000-0000-0000-000000000001"}}]},"UpdateVideoCompositionPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name for this video composition"},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"Width of the resulting video, in pixels"},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"Height of the resulting video, in pixels"},"fps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fps","description":"Frames per second of the resulting video"},"panning":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Panning","description":"Indicates if camera panning is activated during rendering"},"video_tracks":{"anyOf":[{"items":{"$ref":"#/components/schemas/VideoTrackForRequest"},"type":"array"},{"type":"null"}],"title":"Video Tracks","description":"List of video tracks in the composition"},"branding_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Branding Id","description":"Branding to apply to the result video"},"subtitles_language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitles Language Id","description":"Language to use for the rendered subtitles in the video"}},"type":"object","title":"UpdateVideoCompositionPayload","examples":[{"name":"Updated Video Composition"}]},"UpdateWhitelistPayload":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"words":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Words"}},"additionalProperties":false,"type":"object","title":"UpdateWhitelistPayload","examples":[{"name":"New whitelist name","words":["word 1","word 2","word 3"]}]},"UpdateWhitelistResponse":{"properties":{"data":{"$ref":"#/components/schemas/WhitelistForResponse"}},"type":"object","required":["data"],"title":"UpdateWhitelistResponse"},"UpdateZernioProfileNamePayload":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name","description":"New human-readable name for this social media profile."}},"type":"object","required":["name"],"title":"UpdateZernioProfileNamePayload"},"UpdateZernioProfileNameResponse":{"properties":{"data":{"$ref":"#/components/schemas/ZernioProfileForResponse"}},"type":"object","required":["data"],"title":"UpdateZernioProfileNameResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VideoAddAutocenter-Input":{"properties":{"meta_parent_model":{"anyOf":[{"$ref":"#/components/schemas/SQLModel"},{"$ref":"#/components/schemas/VideoAddAutocenter-Input"},{"type":"null"}],"title":"Meta Parent Model"},"meta_parent_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Parent Key"},"start_frame":{"type":"integer","title":"Start Frame","description":"The initial frame this autocenter will start to apply"},"center_x_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Center X Pct","description":"The horizontal percentage central point to be used during this autocenter"},"center_y_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Center Y Pct","description":"The vertical percentage central point to be used during this autocenter","default":50.0},"height_pct":{"type":"number","maximum":40.0,"minimum":0.0,"title":"Height Pct","description":"The uniform zoom percentage applied during this autocenter","default":0.0}},"additionalProperties":false,"type":"object","required":["start_frame","center_x_pct"],"title":"VideoAddAutocenter","description":"An autocenter point to add to the automatically generated autocenter points."},"VideoAddAutocenter-Output":{"properties":{"start_frame":{"type":"integer","title":"Start Frame","description":"The initial frame this autocenter will start to apply"},"center_x_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Center X Pct","description":"The horizontal percentage central point to be used during this autocenter"},"center_y_pct":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Center Y Pct","description":"The vertical percentage central point to be used during this autocenter","default":50.0},"height_pct":{"type":"number","maximum":40.0,"minimum":0.0,"title":"Height Pct","description":"The uniform zoom percentage applied during this autocenter","default":0.0}},"additionalProperties":false,"type":"object","required":["start_frame","center_x_pct"],"title":"VideoAddAutocenter","description":"An autocenter point to add to the automatically generated autocenter points."},"VideoClipForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"filename":{"type":"string","title":"Filename"},"state":{"$ref":"#/components/schemas/VideoClipState"},"asset_id":{"type":"string","format":"uuid","title":"Asset Id"},"aspect_ratio_x":{"type":"integer","title":"Aspect Ratio X"},"aspect_ratio_y":{"type":"integer","title":"Aspect Ratio Y"},"start_ms":{"type":"integer","title":"Start Ms"},"end_ms":{"type":"integer","title":"End Ms"},"autoframing":{"type":"boolean","title":"Autoframing"},"panning":{"type":"boolean","title":"Panning","default":false},"download_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Download Url"}},"type":"object","required":["id","filename","state","asset_id","aspect_ratio_x","aspect_ratio_y","start_ms","end_ms","autoframing"],"title":"VideoClipForResponse","examples":[{"aspect_ratio_x":16,"aspect_ratio_y":9,"asset_id":"00000000-0000-0000-0000-00000000000a","autoframing":true,"download_url":"https://example.com/path/clip1.mp4","end_ms":5000,"filename":"clip1.mp4","id":"00000000-0000-0000-0000-000000000001","start_ms":0,"state":"ready"},{"aspect_ratio_x":4,"aspect_ratio_y":3,"asset_id":"00000000-0000-0000-0000-00000000000a","autoframing":false,"download_url":"https://example.com/path/clip1.mp4","end_ms":10000,"filename":"clip2.mp4","id":2,"start_ms":500,"state":"processing"}]},"VideoClipPayload":{"properties":{"aspect_ratio_x":{"type":"integer","title":"Aspect Ratio X","description":"Aspect ratio numerator"},"aspect_ratio_y":{"type":"integer","title":"Aspect Ratio Y","description":"Aspect ratio denominator"},"start_ms":{"type":"integer","title":"Start Ms","description":"Start time of the clip in milliseconds."},"end_ms":{"type":"integer","title":"End Ms","description":"End time of the clip in milliseconds."},"start_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Frame","description":"Start of the clip in frames."},"end_frame":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Frame","description":"End of the clip in frames. If not given will be assign the end of the file."},"autoframing":{"type":"boolean","title":"Autoframing","description":"Indicates if autoframing is activated","default":false},"panning":{"type":"boolean","title":"Panning","description":"Indicates if camera panning is activated during rendering","default":false},"custom_autocenter":{"items":{"$ref":"#/components/schemas/CustomAutocenterPayload"},"type":"array","title":"Custom Autocenter","description":"The custom autocenters of a clip"},"delete_autocenter":{"items":{"type":"integer"},"type":"array","title":"Delete Autocenter","description":"The start_ms of the autocenters to delete"},"delete_autocenter_frames":{"items":{"type":"integer"},"type":"array","title":"Delete Autocenter Frames","description":"The start_frame of the autocenters to delete"},"subtitles_language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitles Language Id","description":"The language id of the subtitles of the clip"},"branding_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Branding Id","description":"The branding id for personalizing the clip"},"with_sound_descriptions":{"type":"boolean","title":"With Sound Descriptions","description":"If we should render the clip with sound descriptions","default":false}},"type":"object","required":["aspect_ratio_x","aspect_ratio_y","start_ms","end_ms"],"title":"VideoClipPayload","examples":[{"aspect_ratio_x":16,"aspect_ratio_y":9,"autoframing":true,"branding_id":"00000000-0000-0000-0000-00000000007b","custom_autocenter":[{"center_x_pct":40.0,"center_y_pct":50.0,"height_pct":0.0,"start_frame":75,"start_time_ms":1000},{"center_x_pct":60.0,"center_y_pct":35.0,"height_pct":20.0,"start_frame":175,"start_time_ms":3000}],"delete_autocenter":[],"end_frame":275,"end_ms":5000,"start_frame":0,"start_ms":0},{"aspect_ratio_x":4,"aspect_ratio_y":3,"autoframing":false,"custom_autocenter":[],"delete_autocenter":[1260,5700,78970],"delete_autocenter_frame":[25,75,175],"start_ms":500,"subtitles_language_id":"00000000-0000-0000-0000-00000000002a"}]},"VideoClipResponseOutput":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VideoClipForResponse"},"type":"array","title":"Data"}},"type":"object","required":["data"],"title":"VideoClipResponseOutput","examples":[{"data":[{"aspect_ratio_x":16,"aspect_ratio_y":9,"asset_id":"00000000-0000-0000-0000-00000000000a","autoframing":true,"end_ms":5000,"filename":"clip1.mp4","id":1,"start_ms":0,"state":"ready"}]},{"data":[{"aspect_ratio_x":4,"aspect_ratio_y":3,"asset_id":"00000000-0000-0000-0000-00000000000a","autoframing":false,"end_ms":10000,"filename":"clip2.mp4","id":2,"start_ms":500,"state":"processing"}]}]},"VideoClipState":{"type":"string","enum":["processing","ready","uploading","uploaded","error_uploading","created"],"title":"VideoClipState"},"VideoCompositionAutocentersResponse":{"properties":{"tracks":{"items":{"$ref":"#/components/schemas/TrackAutocentersForResponse"},"type":"array","title":"Tracks"}},"type":"object","required":["tracks"],"title":"VideoCompositionAutocentersResponse"},"VideoCompositionForResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"Video composition ID"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant who owns this video composition"},"branding_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Branding Id","description":"ID of the branding to apply to the result video"},"subtitles_language_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Subtitles Language Id","description":"ID of the language to use for the rendered subtitles in the video"},"name":{"type":"string","title":"Name","description":"Name for this video composition"},"width":{"type":"integer","title":"Width","description":"Width of the resulting video, in pixels"},"height":{"type":"integer","title":"Height","description":"Height of the resulting video, in pixels"},"fps":{"type":"number","title":"Fps","description":"Frames per second of the resulting video"},"panning":{"type":"boolean","title":"Panning","description":"Indicates if camera panning is activated during rendering","default":false},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time when this video composition was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time when this video composition was last updated"},"video_tracks":{"items":{"$ref":"#/components/schemas/VideoTrack"},"type":"array","title":"Video Tracks","description":"The video tracks of this composition"}},"type":"object","required":["id","tenant_id","branding_id","subtitles_language_id","name","width","height","fps","created_at","updated_at","video_tracks"],"title":"VideoCompositionForResponse","description":"Response model for VideoComposition."},"VideoCompositionListResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/VideoCompositionForResponse"},"type":"array","title":"Data"},"navigation":{"$ref":"#/components/schemas/PageNavigation"}},"type":"object","required":["data","navigation"],"title":"VideoCompositionListResponse","examples":[{"data":[{"created_at":"2025-01-15T10:30:00Z","fps":30.0,"height":1080,"id":"550e8400-e29b-41d4-a716-446655440000","name":"Video Composition 1","panning":false,"tenant_id":"550e8400-e29b-41d4-a716-446655440001","updated_at":"2025-01-15T10:30:00Z","video_tracks":[],"width":1920}],"navigation":{"link_first":"https://example.org/v1/video_compositions?page=1&items=20","link_last":"https://example.org/v1/video_compositions?page=1&items=20","link_next":"https://example.org/v1/video_compositions?page=1&items=20","link_prev":"https://example.org/v1/video_compositions?page=1&items=20","total_elements":10}}]},"VideoDeleteAutocenter-Input":{"properties":{"meta_parent_model":{"anyOf":[{"$ref":"#/components/schemas/SQLModel"},{"$ref":"#/components/schemas/VideoDeleteAutocenter-Input"},{"type":"null"}],"title":"Meta Parent Model"},"meta_parent_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Meta Parent Key"},"start_frame":{"type":"integer","title":"Start Frame","description":"The frame position of the autocenter point to delete"}},"additionalProperties":false,"type":"object","required":["start_frame"],"title":"VideoDeleteAutocenter","description":"An autocenter point to delete from the automatically generated autocenter points."},"VideoDeleteAutocenter-Output":{"properties":{"start_frame":{"type":"integer","title":"Start Frame","description":"The frame position of the autocenter point to delete"}},"additionalProperties":false,"type":"object","required":["start_frame"],"title":"VideoDeleteAutocenter","description":"An autocenter point to delete from the automatically generated autocenter points."},"VideoSegmentTransitionType":{"type":"string","enum":["none","fade","slide-left","slide-right","wipe"],"title":"VideoSegmentTransitionType","description":"The accepted transition types in VideoSegment."},"VideoTrack":{"properties":{"name":{"type":"string","title":"Name","description":"Name for this track"},"muted":{"type":"boolean","title":"Muted","description":"Indicates if the sound of this video track should be muted","default":false},"segments":{"items":{"oneOf":[{"$ref":"#/components/schemas/AssetVideoSegment"},{"$ref":"#/components/schemas/EmptyVideoSegment"}],"discriminator":{"propertyName":"type","mapping":{"asset":"#/components/schemas/AssetVideoSegment","empty":"#/components/schemas/EmptyVideoSegment"}}},"type":"array","title":"Segments","description":"The video segments to include in this track"}},"additionalProperties":false,"type":"object","required":["name"],"title":"VideoTrack"},"VideoTrackForRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Name for this track"},"muted":{"type":"boolean","title":"Muted","description":"Indicates if the original audio of this track is muted"},"segments":{"items":{"oneOf":[{"$ref":"#/components/schemas/AssetVideoSegmentForRequest"},{"$ref":"#/components/schemas/EmptyVideoSegmentForRequest"}]},"type":"array","title":"Segments","description":"Ordered list of segments in this track. Each segment must have a 'type' field set to 'asset' or 'empty'"}},"type":"object","required":["name","muted","segments"],"title":"VideoTrackForRequest","description":"A video track containing an ordered list of asset and empty segments.","examples":[{"muted":false,"name":"Main Track","segments":[{"asset_id":"550e8400-e29b-41d4-a716-446655440000","duration_frames":150,"start_from":0,"transition_duration_frames":10,"transition_type":"fade","type":"asset","volume":100},{"duration_frames":60,"type":"empty"}]}]},"VoiceGender":{"type":"string","enum":["male","female"],"title":"VoiceGender"},"VoiceOverConfig":{"properties":{"clone_voice":{"type":"boolean","title":"Clone Voice","description":"Indicate if the voice should be cloned","default":false},"mute_original_voice":{"type":"boolean","title":"Mute Original Voice","description":"Indicate if the original voice should be completely muted","default":false}},"type":"object","title":"VoiceOverConfig"},"VoiceOverLanguageTier":{"type":"integer","enum":[0,1,2],"title":"VoiceOverLanguageTier","description":"The different tiers for languages in voice over.\n\nPremium languages are more costly than basic languages."},"VttFlavor":{"type":"string","enum":["standard","simplified"],"title":"VttFlavor"},"WhitelistForResponse":{"properties":{"name":{"type":"string","title":"Name"},"words":{"items":{"type":"string"},"type":"array","title":"Words","default":[]},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant to which this whitelist belongs"},"id":{"type":"string","format":"uuid","title":"Id","description":"Whitelist dictionary ID"}},"type":"object","required":["name","tenant_id","id"],"title":"WhitelistForResponse"},"WorkflowName":{"type":"string","enum":["dummy","video_composition_with_silences"],"title":"WorkflowName"},"WorkflowTriggerForUserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"ID of this workflow trigger"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant where this trigger is applied"},"workflow_id":{"$ref":"#/components/schemas/WorkflowName","description":"The workflow this trigger enables"},"event_id":{"$ref":"#/components/schemas/ApiEventName","description":"The event that triggers the workflow"},"enabled":{"type":"boolean","title":"Enabled","description":"Whether this workflow trigger is active"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time this workflow trigger was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time this workflow trigger was updated for the last time"}},"type":"object","required":["id","tenant_id","workflow_id","event_id","enabled","created_at","updated_at"],"title":"WorkflowTriggerForUserResponse","description":"Response model for users for the `WorkflowTrigger` model."},"YouTubePostOptions":{"properties":{"platform":{"type":"string","const":"youtube","title":"Platform","default":"youtube"},"visibility":{"$ref":"#/components/schemas/YouTubeVisibility","default":"public"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"}},"type":"object","title":"YouTubePostOptions"},"YouTubeVisibility":{"type":"string","enum":["public","unlisted","private"],"title":"YouTubeVisibility"},"ZernioProfileForResponse":{"properties":{"profile_id":{"type":"string","title":"Profile Id","description":"Zernio profile ID"},"tenant_id":{"type":"string","format":"uuid","title":"Tenant Id","description":"ID of the tenant that owns this profile"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Human-readable name for this Zernio profile"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Date and time when this profile was created"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"Date and time when this profile was last updated"}},"type":"object","required":["profile_id","tenant_id","created_at","updated_at"],"title":"ZernioProfileForResponse","description":"Response model for `ZernioProfile`."},"c21_saas_public_api__routers_v1__video_clips__AsyncExportPayload":{"properties":{"external_storage_id":{"type":"string","format":"uuid","title":"External Storage Id","description":"The ID of the destination external storage"}},"type":"object","required":["external_storage_id"],"title":"AsyncExportPayload"},"c21_saas_public_api__routers_v1__video_clips__CheckExportStatusResponse":{"properties":{"state":{"$ref":"#/components/schemas/JobState"},"job_id":{"type":"string","format":"uuid","title":"Job Id"},"result":{"additionalProperties":true,"type":"object","title":"Result","default":{}}},"type":"object","required":["state","job_id"],"title":"CheckExportStatusResponse","examples":[{"job_id":"00000000-0000-0000-0000-000000000001","result":{"export_url":"https://example.com/download/clip1.zip"},"state":"finished_ok"},{"job_id":"00000000-0000-0000-0000-000000000002","result":{},"state":"running"}]},"c21_saas_public_api__routers_v1__video_compositions__AsyncExportPayload":{"properties":{"external_storage_id":{"type":"string","format":"uuid","title":"External Storage Id","description":"The ID of the destination external storage"},"render_job_id":{"type":"string","format":"uuid","title":"Render Job Id","description":"The ID of the finished render job to export"}},"type":"object","required":["external_storage_id","render_job_id"],"title":"AsyncExportPayload"},"c21_saas_public_api__routers_v1__video_compositions__CheckExportStatusResponse":{"properties":{"state":{"$ref":"#/components/schemas/JobState"},"job_id":{"type":"string","format":"uuid","title":"Job Id"},"result":{"additionalProperties":true,"type":"object","title":"Result","default":{}}},"type":"object","required":["state","job_id"],"title":"CheckExportStatusResponse","examples":[{"job_id":"00000000-0000-0000-0000-000000000001","result":{"export_url":"https://example.com/export/composition.mp4"},"state":"finished_ok"},{"job_id":"00000000-0000-0000-0000-000000000002","result":{},"state":"running"}]}}}}