openapi: 3.2.0 info: title: Millicast Beta API description: '# Introduction Controlling publishing for your Millicast account.' version: 1.0.0 servers: - url: https://api.millicast.com security: - API_Secret: [] tags: - name: Beta paths: /api/v2/record_files/list: get: tags: - Beta summary: List Media Assets description: '**Please refer to List Media Assets** List media assets, excluding those that have been deleted. A media asset can be: * A `"FullRecording"` that is from the full duration of the stream * A `"Clip"` which is generated from a clip request' operationId: RecordFilesV2_ListMediaAssets parameters: - name: sortBy in: query schema: default: RecordedOn oneOf: - $ref: '#/components/schemas/ListMediaAssetSortBy2' x-position: 1 - name: status in: query style: form explode: true schema: type: - array - 'null' items: $ref: '#/components/schemas/FilterByMediaAssetStatus' x-position: 2 - name: page in: query required: true description: The index to start when paginating results. schema: type: integer format: int32 maximum: 2147483647.0 minimum: 1.0 x-position: 3 - name: itemsOnPage in: query required: true description: The number of results to include when paginating a large result set. schema: type: integer format: int32 maximum: 100.0 minimum: 1.0 x-position: 4 - name: isDescending in: query description: Change the direction of the default sort ordering. schema: type: boolean default: false x-position: 5 requestBody: x-name: filterModel content: application/json: schema: $ref: '#/components/schemas/ListMediaAssetFilterParameters' required: true x-position: 6 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessListMediaAssetModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/v2/record_files/{mediaAssetId}: get: tags: - Beta summary: Read Media Asset description: '**Please refer to Read Media Asset** Gets media asset specified by id. Includes temporary download link and a CDN served link if the media asset is complete.' operationId: RecordFilesV2_ReadMediaAsset parameters: - name: mediaAssetId in: path required: true schema: type: string x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDownloadMediaAssetModel2' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/v2/record_files/delete: post: tags: - Beta summary: Delete Media Assets description: '**Please refer to Delete Media Assets** Deletes multiple media assets from storage. Only media assets with status Complete or Error can be deleted.' operationId: RecordFilesV2_DeleteMediaAssets requestBody: x-name: deleteModel content: application/json: schema: $ref: '#/components/schemas/RemoveMediaAssetsModel' required: true x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDeleteMediaAssetsResponse2' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/clip: post: tags: - Beta summary: Create Clip description: '**Please refer to Create Media Asset** Create clip of recording with specified start and stop times. Start and stop times must be at least 10 seconds apart. Use the mediaAssetIds in the response to retrieve the record files.' operationId: RecordFiles_CreateRecordClip requestBody: x-name: requestModel content: application/json: schema: $ref: '#/components/schemas/CreateClipRequestModel' required: true x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfClipRequestResponseModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/clip/{clipRequestId}: get: tags: - Beta summary: Get Clip Request description: '**There is no direct replacement for this endpoint. Media assets can be retrieved using Get Media Asset.** Get clip request' operationId: RecordFiles_GetClipRequest parameters: - name: clipRequestId in: path required: true description: Id obtained from start clip request schema: type: string x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfClipRequestResponseModel' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] delete: tags: - Beta summary: Delete Clip Request description: '**There is no direct replacement for this endpoint. Media assets can be deleted using Delete Media Assets.** Delete a clip request and all associated media assets. Clip requests that are InProgress may not be deleted.' operationId: RecordFiles_DeleteClipRequestLive parameters: - name: clipRequestId in: path required: true schema: type: string x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDeleteMediaAssetsResponse3' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/clip/list: get: tags: - Beta summary: List Clip Requests description: '**There is no direct replacement for this endpoint. Media assets can be retrieved using List Media Assets.** List clip requests. Captures the requests made for live clips. Entries are removed after expiry time. Use the Get Clip Request endpoint to view the media assets associated with each clip request.' operationId: RecordFiles_ListClipRequests parameters: - name: sortBy in: query schema: default: RecordedOn oneOf: - $ref: '#/components/schemas/ListClipRequestsSortBy' x-position: 1 - name: page in: query required: true description: The index to start when paginating results. schema: type: integer format: int32 maximum: 2147483647.0 minimum: 1.0 x-position: 2 - name: itemsOnPage in: query required: true description: The number of results to include when paginating a large result set. schema: type: integer format: int32 maximum: 100.0 minimum: 1.0 x-position: 3 - name: isDescending in: query description: Change the direction of the default sort ordering. schema: type: boolean default: false x-position: 4 requestBody: x-name: filterModel content: application/json: schema: $ref: '#/components/schemas/ListClipRequestsFilterParameters' required: true x-position: 5 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessListClipRequestsModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/clip/sources: get: tags: - Beta summary: List Available Clip Sources description: '**Please refer to List Media Assets and query with `type=timeline`** Indicates which streams and time frames are available for clipping.' operationId: RecordFiles_ListAvailableClipSources parameters: - name: sortBy in: query schema: default: RecordedOn oneOf: - $ref: '#/components/schemas/ListRecordBlocksSortBy' x-position: 1 - name: page in: query required: true description: The index to start when paginating results. schema: type: integer format: int32 maximum: 2147483647.0 minimum: 1.0 x-position: 2 - name: itemsOnPage in: query required: true description: The number of results to include when paginating a large result set. schema: type: integer format: int32 maximum: 100.0 minimum: 1.0 x-position: 3 - name: isDescending in: query description: Change the direction of the default sort ordering. schema: type: boolean default: false x-position: 4 requestBody: x-name: filterModel content: application/json: schema: $ref: '#/components/schemas/ListAvailableClipSourcesFilterParameters' required: true x-position: 5 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessListClipSourcesModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/storage_profiles/validate: post: tags: - Beta summary: Validate Third Party Storage Setup description: '**Please refer to Validate Third Party Storage Setup** Validates third party storage is configured with permissions for Dolby.io to upload media assets. To track the validation result, keep note of the the `validationId` returned in the response body. If correctly configured, when calling Read Media Asset, the response should return a successful entry with `id` matching the `validationId`. Run once to validate write permissions. If successful, optionally run a second time to confirm that overwriting is allowed. Note that validation results are only available for 1 hour. If you provide an empty body or no body your default storage profile will be validated.' operationId: RecordFiles_ValidateStorageProfile requestBody: x-name: storageProfile content: application/json: schema: $ref: '#/components/schemas/ValidateRecordStorageProfileModel' required: true x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfSuccessValidateRecordStorageResponse2' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/clip/sources/expiry: post: tags: - Beta summary: Update Clip Source Expiry Rule description: '**Please refer to Update Account Media Assets Expiration Rules** Update account level expiry rule for clip creation. Streams that were published outside this expiry period will not be available for creating clips.' operationId: RecordFiles_UpdateExpiryRule requestBody: x-name: model content: application/json: schema: $ref: '#/components/schemas/UpdateRecordBlocksExpiryRuleModel' required: true x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfRecordBlocksExpiryRuleModel' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] get: tags: - Beta summary: Get Clip Source Expiry Rule description: '**Please refer to Get Account Media Assets Expiration Rules** Get account level expiry rule for clip creation. Streams that were published outside this expiry period will not be available for creating clips.' operationId: RecordFiles_GetExpiryRule responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfRecordBlocksExpiryRuleModel' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] delete: tags: - Beta summary: Delete Clip Source Expiry Rule description: '**Please refer to Update Account Media Assets Expiration Rules** Delete account level expiry rule for clip creation and use system default. This may immediately trigger removal of existing stream data outside of the system default expiry period, thus preventing clips from being created on those expired streams. Use with caution.' operationId: RecordFiles_DeleteExpiryRule responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] /api/record_files/clip/sources/delete: post: tags: - Beta summary: Delete Clip Sources description: '**Please refer to Delete Media Assets** Indicates to delete via `clipSourceId`.' operationId: RecordFiles_DeleteClipSources requestBody: x-name: model content: application/json: schema: $ref: '#/components/schemas/RemoveClipSourcesModel' required: true x-position: 1 responses: '204': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessListClipSourcesModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) deprecated: true security: - API_Secret: [] components: schemas: UpdateRecordBlocksExpiryRuleModel: type: object additionalProperties: false required: - expiry properties: expiry: description: 'Update account level expiry rule for clip creation. ' oneOf: - $ref: '#/components/schemas/TimeSpanModel' ValidateRecordStorageProfileModel: type: object additionalProperties: false properties: storage: description: Storage settings. oneOf: - $ref: '#/components/schemas/UpdateRecordFileStorageModel' ListMediaAssetSortBy2: type: string description: '' x-enumNames: - RecordedOn - StoppedOn - StreamName - TokenId - Token enum: - RecordedOn - StoppedOn - StreamName - TokenId - Token ListRecordBlocksSortBy: type: string description: '' x-enumNames: - RecordedOn - StoppedOn enum: - RecordedOn - StoppedOn RecordFileUploadStorageType: type: string description: '' x-enumNames: - Default - Gcs - AwsS3 - DolbyStorage enum: - Default - Gcs - AwsS3 - DolbyStorage ListMediaAssetFilterParameters: type: object additionalProperties: false properties: tokenId: type: - integer - 'null' description: Optional. Filter by tokenId. streamName: type: - string - 'null' description: Optional. Filter by streamName. clipRequestId: type: - string - 'null' description: 'Optional. Filter by clipRequestId. ' itemType: description: Optional. Specify full recording or clip. oneOf: - $ref: '#/components/schemas/MediaAssetType2' clipName: type: - string - 'null' description: 'Optional. Filter by clipName. ' RecordFileStorageResponseModel: type: object additionalProperties: false properties: storageType: description: Storage provider type oneOf: - $ref: '#/components/schemas/RecordFileUploadStorageType' storagePath: type: - string - 'null' description: 'Path to clip storage location. Available only for external storage configurations. ' ClipRequestResponseMinimalModel: type: object additionalProperties: false properties: clipName: type: - string - 'null' description: Clip label if assigned by user clipRequestId: type: string description: Id associated with clipping request startTime: type: - string - 'null' format: date stopTime: type: - string - 'null' format: date expiresOn: type: - string - 'null' format: date DeleteMediaAssetsResponse2: type: object additionalProperties: false properties: errors: type: - array - 'null' items: $ref: '#/components/schemas/MediaAssetDeletionError2' MediaAssetResponseMinimalModel: type: object additionalProperties: false properties: id: type: - string - 'null' status: $ref: '#/components/schemas/MediaAssetStatus2' CreateClipRequestModel: type: object additionalProperties: false required: - streamName - startTime properties: tokenId: type: - integer - 'null' description: Publish token of stream. streamName: type: string description: Name of stream to create live clip. minLength: 1 sourceId: type: - string - 'null' description: 'Optional. ' simulcastId: type: - string - 'null' description: 'Optional. ' clipName: type: - string - 'null' description: 'Optional. Provide a label for the live recording clip.

ClipNames may not exceed 256 characters. ClipNames must meet the naming requirements recommended by [Google Cloud Storage](https://cloud.google.com/storage/docs/objects#naming) and [AWS S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines).

If a media asset is uploaded to third party storage, the `clipName` will be used as the name of the uploaded object. To avoid failed uploads the name should be either unique to avoid conflict with existing objects in the upload location or if overwriting existing objects is desired, appropriate permissions must be granted: [DELETE permissions must be granted to Dolby.io](https://optiview.dolby.com/docs/millicast/distribution/stream-recordings/how-to-setup-media-storage/#setting-up-cloud-storage).

ClipNames may not contain carriage return or line feed characters, or any of the characters #, [, ], *, ?, :, ", “, ”, <, >, |, /, {, }, ^, %, `, ~.' maxLength: 256 minLength: 1 storage: description: 'Optional. Provide storage configurations for clip. If unspecified, defaults to Dolby.io''s storage buckets.

If specifying user-defined storage, please refer to setup instructions to grant Dolby.io upload access to buckets and ensure that configurations have been tested using [Test Storage Configuration](#tag/RecordFileTasks/operation/RecordFileTasks_TestRecordFileStorage). ' oneOf: - $ref: '#/components/schemas/RecordFileStorageModel' expiresOn: type: - string - 'null' description: 'Optional. Provide expiry time for live recording clip.

If not specified, file will be retained until removed via [Delete Files](#operation/RecordFilesV2_DeleteRecordFileItems).

Has no effect when files are uploaded to user-specified storage locations. ' format: date priority: type: - integer - 'null' description: Optional. Priority level of stream(s) to clip. By default the stream with highest priority for a given sourceId will be chosen to clip. format: int32 startTime: type: string description: Start time of live recording clip. Must be provided to disambiguate between discontinuous streams. Recordings returned will start on or after specified time, depending on the actual start time of the content request. Time must be set in the past.

ISO 8601 format should be used (eg 2020-01-01T00:00:00Z), all times are expected to be UTC. format: date minLength: 1 stopTime: type: - string - 'null' description: Optional. Stop time of live recording clip. If not provided, defaults to the current time. Time must be set in the past.

ISO 8601 format should be used (eg 2020-01-01T00:00:00Z), all times are expected to be UTC. format: date UpdateRecordFileStorageModel: type: object additionalProperties: false properties: objectPrefix: type: - string - 'null' description: Update storage object prefix. Set to empty string to clear exisiting value. storageType: oneOf: - $ref: '#/components/schemas/RecordFileUploadStorageType' gcsStorageConfig: oneOf: - $ref: '#/components/schemas/UpdateRecordFileStorageGcsModel' awsS3StorageConfig: oneOf: - $ref: '#/components/schemas/UpdateRecordFileStorageAwsModel' SuccessResponseOfDeleteMediaAssetsResponse3: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/DeleteMediaAssetsResponse3' MediaAssetType2: type: string description: '' x-enumNames: - FullRecording - Clip - StorageValidation - Timeline - Vod enum: - FullRecording - Clip - StorageValidation - Timeline - Vod RemoveClipSourcesModel: type: object additionalProperties: false required: - clipSourceIds properties: clipSourceIds: type: array minItems: 1 items: type: integer FailResponse: type: object additionalProperties: false required: - status - data properties: status: type: string default: fail minLength: 1 data: {} SuccessResponseOfClipRequestResponseModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/ClipRequestResponseModel' ListClipRequestsFilterParameters: type: object additionalProperties: false properties: tokenId: type: - integer - 'null' description: Optional. Filter by tokenId. streamName: type: - string - 'null' description: Optional. Filter by streamName. sourceId: type: - string - 'null' description: 'Optional. Filter by sourceId. ' simulcastId: type: - string - 'null' description: 'Optional. Filter by simulcastId. ' status: type: - array - 'null' items: $ref: '#/components/schemas/FilterByClipRequestStatus' clipRequestId: type: - string - 'null' description: 'Optional. Filter by clipRequestId. ' clipName: type: - string - 'null' description: 'Optional. Filter by clipName. ' priority: type: - integer - 'null' description: 'Optional. Filter by priority. ' format: int32 UpdateRecordFileStorageAwsModel: type: object additionalProperties: false required: - bucketName - bucketRegion properties: bucketName: type: string minLength: 1 bucketRegion: type: string minLength: 1 FilterByMediaAssetStatus: type: string description: '' x-enumFlags: true x-enumNames: - Started - Transcode - InProgress - RawError - Invalid - Complete - Deleting - Error enum: - Started - Transcode - InProgress - RawError - Invalid - Complete - Deleting - Error SuccessResponse: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: {} SuccessListClipSourcesModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: type: array items: $ref: '#/components/schemas/ListClipSourcesResponseModel' DeleteMediaAssetsResponse3: type: object additionalProperties: false properties: itemsDeleted: type: integer format: int32 errors: type: - array - 'null' items: $ref: '#/components/schemas/MediaAssetDeletionError3' SuccessListMediaAssetModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: type: array items: $ref: '#/components/schemas/MediaAssetResponseModel2' ListClipSourcesResponseModel: type: object additionalProperties: false properties: id: type: integer recordedOn: type: string stoppedOn: type: - string - 'null' streamName: type: string sourceId: type: - string - 'null' simulcastId: type: - string - 'null' priority: type: - integer - 'null' format: int32 tokenId: type: integer status: $ref: '#/components/schemas/MediaAssetStatus2' MediaAssetResponseModel2: type: object additionalProperties: false properties: id: type: - string - 'null' status: $ref: '#/components/schemas/MediaAssetStatus2' sourceId: type: - string - 'null' simulcastId: type: - string - 'null' priority: type: - integer - 'null' format: int32 itemType: $ref: '#/components/schemas/MediaAssetType2' clipMetadata: description: Metadata if recording is a clip oneOf: - $ref: '#/components/schemas/ClipRequestResponseMinimalModel' tokenId: type: - integer - 'null' streamName: type: string recordedOn: type: - string - 'null' format: date-time stoppedOn: type: - string - 'null' format: date-time removedOn: type: - string - 'null' format: date-time metadata: oneOf: - $ref: '#/components/schemas/RecordMetadata' error: type: - string - 'null' storage: oneOf: - $ref: '#/components/schemas/RecordFileStorageResponseModel' SuccessResponseOfDeleteMediaAssetsResponse2: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/DeleteMediaAssetsResponse2' RecordFileStorageGcsModel: type: object additionalProperties: false required: - bucketName properties: bucketName: type: string description: 'Name of bucket to upload clips to. Please ensure Dolby.io''s service account is granted access to `gs://bucketName`. ' minLength: 1 ClipRequestResponseBaseModel: type: object additionalProperties: false properties: clipName: type: - string - 'null' description: Clip label if assigned by user clipRequestId: type: string description: Id associated with clipping request startTime: type: - string - 'null' format: date stopTime: type: - string - 'null' format: date expiresOn: type: - string - 'null' format: date status: $ref: '#/components/schemas/ClipRequestStatus' streamName: type: string sourceId: type: - string - 'null' simulcastId: type: - string - 'null' tokenId: type: - integer - 'null' itemType: $ref: '#/components/schemas/MediaAssetType2' priority: type: - integer - 'null' format: int32 storage: description: Storage information oneOf: - $ref: '#/components/schemas/RecordFileStorageResponseModel' removedOn: type: - string - 'null' format: date RecordBlocksExpiryRuleModel: type: object additionalProperties: false properties: timeSpan: oneOf: - $ref: '#/components/schemas/TimeSpanModel' isCustom: type: boolean description: 'Indicates whether expiry rule is custom set or using system preset. There will be no guarantee that system preset remains unchanged. ' DownloadMediaAssetModel2: type: object additionalProperties: false properties: sourceId: type: - string - 'null' simulcastId: type: - string - 'null' priority: type: - integer - 'null' format: int32 itemType: $ref: '#/components/schemas/MediaAssetType2' clipMetadata: description: Metadata if recording is a clip oneOf: - $ref: '#/components/schemas/ClipRequestResponseMinimalModel' tokenId: type: - integer - 'null' streamName: type: string recordedOn: type: - string - 'null' format: date-time stoppedOn: type: - string - 'null' format: date-time removedOn: type: - string - 'null' format: date-time metadata: oneOf: - $ref: '#/components/schemas/RecordMetadata' error: type: - string - 'null' storage: oneOf: - $ref: '#/components/schemas/RecordFileStorageResponseModel' id: type: - string - 'null' status: $ref: '#/components/schemas/MediaAssetStatus2' download: oneOf: - $ref: '#/components/schemas/RecordDownloadUrl2' RecordMediaTrack: type: object additionalProperties: false properties: type: type: string codec: type: string bitrate: type: integer width: type: - integer - 'null' format: int32 height: type: - integer - 'null' format: int32 framerate: type: - integer - 'null' format: int32 channels: type: - integer - 'null' format: int32 samplerate: type: - integer - 'null' format: int64 MediaAssetDeletionError3: type: object additionalProperties: false properties: id: type: - string - 'null' error: type: - string - 'null' FilterByClipRequestStatus: type: string description: '' x-enumNames: - Open - InProgress - Complete - Error - RawError - Invalid - Started enum: - Open - InProgress - Complete - Error - RawError - Invalid - Started RecordFileStorageAwsModel: type: object additionalProperties: false required: - bucketName - bucketRegion properties: bucketName: type: string minLength: 1 bucketRegion: type: string minLength: 1 UpdateRecordFileStorageGcsModel: type: object additionalProperties: false required: - bucketName properties: bucketName: type: string minLength: 1 RecordFileStorageModel: type: object additionalProperties: false properties: objectPrefix: type: - string - 'null' description: Optional. Prefix to object when stored in bucket i.e. `protocol`://`bucketName`/`objectPrefix`/`objectName.ext`. Ignored when using Dolby.io's storage buckets. `objectName` is either defined by a system assigned GUID or the user-specified `clipName`. storageType: description: 'Optional. Storage provider type. If not specified, defaults to Dolby.io''s storage buckets. ' default: Default oneOf: - $ref: '#/components/schemas/RecordFileUploadStorageType' gcsStorageConfig: description: Optional unless `"Gcs"` is specified for `StorageType` oneOf: - $ref: '#/components/schemas/RecordFileStorageGcsModel' awsS3StorageConfig: description: Optional unless `"AwsS3"` is specified for `StorageType` oneOf: - $ref: '#/components/schemas/RecordFileStorageAwsModel' ErrorResponse: type: object additionalProperties: false required: - status - message properties: status: type: string default: error minLength: 1 message: type: string minLength: 1 code: type: - integer - 'null' format: int32 data: {} ListClipRequestsSortBy: type: string description: '' x-enumNames: - RecordedOn - ExpiresOn enum: - RecordedOn - ExpiresOn RecordDownloadUrl2: type: object additionalProperties: false properties: downloadUrl: type: string downloadExpiresOn: type: - string - 'null' format: date-time ClipRequestResponseModel: type: object additionalProperties: false properties: status: $ref: '#/components/schemas/ClipRequestStatus' streamName: type: string sourceId: type: - string - 'null' simulcastId: type: - string - 'null' tokenId: type: - integer - 'null' itemType: $ref: '#/components/schemas/MediaAssetType2' priority: type: - integer - 'null' format: int32 storage: description: Storage information oneOf: - $ref: '#/components/schemas/RecordFileStorageResponseModel' removedOn: type: - string - 'null' format: date clipName: type: - string - 'null' description: Clip label if assigned by user clipRequestId: type: string description: Id associated with clipping request startTime: type: - string - 'null' format: date stopTime: type: - string - 'null' format: date expiresOn: type: - string - 'null' format: date mediaAssets: type: - array - 'null' description: 'List of media asset ids and statuses associated with this clip request. Call Read Media Asset to retrieve the record file and information about each media asset. ' items: $ref: '#/components/schemas/MediaAssetResponseMinimalModel' SuccessResponseOfRecordBlocksExpiryRuleModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/RecordBlocksExpiryRuleModel' SuccessListClipRequestsModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: type: array items: $ref: '#/components/schemas/ClipRequestResponseBaseModel' RemoveMediaAssetsModel: type: object additionalProperties: false required: - mediaAssetIds properties: mediaAssetIds: type: array maxItems: 1000 minItems: 1 items: type: string ListAvailableClipSourcesFilterParameters: type: object additionalProperties: false properties: tokenId: type: - integer - 'null' description: Optional. Filter by tokenId. streamName: type: - string - 'null' description: Optional. Filter by streamName. simulcastId: type: - string - 'null' description: Optional. Filter by SimulcastId. sourceId: type: - string - 'null' description: Optional. Filter by SourceId. priority: type: - integer - 'null' description: Optional. Filter by Priority. format: int32 SuccessResponseOfDownloadMediaAssetModel2: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/DownloadMediaAssetModel2' RecordMetadata: type: object additionalProperties: false required: - tracks - thumbnails properties: format: type: string sizes: type: - object - 'null' additionalProperties: type: integer format: uint64 duration: type: integer description: Duration of this asset, in seconds. tracks: type: array items: $ref: '#/components/schemas/RecordMediaTrack' thumbnails: type: array description: The list of thumbnails. items: type: string fileCount: type: - integer - 'null' description: The number of files. TimeSpanModel: type: object additionalProperties: false properties: days: type: - integer - 'null' format: int32 maximum: 365.0 minimum: 1.0 SuccessResponseOfSuccessValidateRecordStorageResponse2: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/SuccessValidateRecordStorageResponse2' ClipRequestStatus: type: string description: '' x-enumNames: - Open - InProgress - Complete - Error - Invalid - Started - Deleted - Expiring - Deleting enum: - Open - InProgress - Complete - Error - Invalid - Started - Deleted - Expiring - Deleting SuccessValidateRecordStorageResponse2: type: object additionalProperties: false properties: validationId: type: - string - 'null' validatedStorage: oneOf: - $ref: '#/components/schemas/RecordFileStorageResponseModel' validationFilename: type: - string - 'null' description: 'Test vector uploaded to specified storage path. Expect to see this in your cloud storage if access permissions were currectly configured. ' MediaAssetDeletionError2: type: object additionalProperties: false properties: mediaAssetId: type: - string - 'null' error: type: - string - 'null' MediaAssetStatus2: type: string description: '' x-enumNames: - Started - Transcode - InProgress - Deleted - Invalid - Expiring - Complete - Deleting - Error enum: - Started - Transcode - InProgress - Deleted - Invalid - Expiring - Complete - Deleting - Error securitySchemes: API_Secret: type: http description: '### Usage #### Acquire secret from dashboard. * Login to the streaming dashboard * On the left menu, click on Settings * Navigate to the Security tab''s sub section API Secrets 1. "+ Create" to generate a new named API Secret if needed 2. Click on the copy button or the reveal button to access a previously created API Secret ![](../assets/api_secret.png "Find API Secret")' scheme: bearer x-generator: NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0)) x-code-samples-replace: {}