openapi: 3.2.0
info:
title: Millicast Account API
description: '# Introduction
Controlling publishing for your Millicast account.'
version: 1.0.0
servers:
- url: https://api.millicast.com
security:
- API_Secret: []
tags:
- name: Account
paths:
/api/v3/account/media/expiration:
put:
tags:
- Account
summary: Update Account Media Assets Expiration Rules
description: Update account level expiration rule for various media asset types.
operationId: Account_UpdateExpirationRules
requestBody:
x-name: model
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateMediaAssetExpirationModel'
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfMediaAssetExpirationResponseModel'
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)
security:
- API_Secret: []
get:
tags:
- Account
summary: Get Account Media Assets Expiration Rule
description: Get account level expiration rule for various media asset types.
operationId: Account_GetExpirationRules
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfMediaAssetExpirationResponseModel'
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)
security:
- API_Secret: []
/api/v3/account/media/storage:
get:
tags:
- Account
summary: List Storage Profiles
description: List all storage profiles created on your account.
operationId: Account_ListStorageProfiles
parameters:
- name: sort
in: query
schema:
default: name
oneOf:
- $ref: '#/components/schemas/ListStorageProfilesSortBy'
x-position: 1
- name: default
in: query
description: Set to true to get the default storage profile on your account
schema:
type:
- boolean
- 'null'
x-position: 2
- name: page
in: query
schema:
type: integer
default: 1
maximum: 2147483647.0
minimum: 1.0
x-position: 3
- name: limit
in: query
schema:
type: integer
default: 25
maximum: 100.0
minimum: 1.0
x-position: 4
- name: desc
in: query
schema:
type: boolean
default: false
x-position: 5
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfListOfStorageProfileResponseModel'
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)
security:
- API_Secret: []
post:
tags:
- Account
summary: Create Storage Profile
description: Create a storage profile identifying the configuration for a cloud storage provider that can receive media assets when they are finished processing. Only one storage profile will be set as a default for the entire account, otherwise you may specify a storage location using the `storageProfileId` on any individual media clip request.
operationId: Account_CreateStorageProfile
requestBody:
x-name: model
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStorageProfileModel'
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfStorageProfileResponseModel'
'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)
security:
- API_Secret: []
/api/v3/account/media/storage/{id}:
delete:
tags:
- Account
summary: Delete Storage Profile
description: Specify the id of a storage profile you wish to delete.
operationId: Account_DeleteStorageProfile
parameters:
- name: id
in: path
required: true
schema:
type: string
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfBoolean'
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)
security:
- API_Secret: []
get:
tags:
- Account
summary: Get Storage Profile
description: Get details of a saved storage profile
operationId: Account_GetStorageProfile
parameters:
- name: id
in: path
required: true
schema:
type: string
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfStorageProfileResponseModel'
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)
security:
- API_Secret: []
put:
tags:
- Account
summary: Update Storage Profile
description: Change the details of a storage profile.
operationId: Account_UpdateStorageProfile
parameters:
- name: id
in: path
required: true
schema:
type: string
x-position: 1
requestBody:
x-name: updateModel
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateStorageProfileModel'
required: true
x-position: 2
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfStorageProfileResponseModel'
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)
security:
- API_Secret: []
/api/v3/account/media/storage/validate:
post:
tags:
- Account
summary: Validate Third Party Storage Setup
description: '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 `id` returned in the response body. If correctly configured, when calling Read Media Asset, the response should return a successful entry with `id` matching the `id`.
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.'
operationId: Account_ValidateThirdPartyStorage
requestBody:
x-name: storageModel
content:
application/json:
schema:
$ref: '#/components/schemas/MediaAssetStorageModel'
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfSuccessValidateRecordStorageResponse'
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)
security:
- API_Secret: []
/api/v3/account/distribution:
get:
tags:
- Account
summary: Read Account Distribution Settings
description: 'Gets account wide distribution settings. Whenever publish tokens are created, these will be the default settings used for features that impact how streams are distributed.
* geoCascade: controls if and which geographic clusters are included for regional content delivery'
operationId: Account_GetAccountDistribution
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfAccountDistributionModel'
examples:
success:
summary: success
value:
status: success
data:
geoCascade:
isEnabled: true
clusters:
- phx-1
- ams-1
'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)
security:
- API_Secret: []
put:
tags:
- Account
summary: Update Account Distribution Settings
description: 'Update account wide distribution settings to enable/disable the feature or update the account default cluster list. Whenever publish tokens are created, these will be the default settings used for features that impact how streams are distributed.
''["all"]'' could be used in place of cluster list to cascade stream to all existing and any future clusters available to the account.
Empty cluster list is not allowed when enabling account wide distribution settings. Cluster list is translated to ''["all"]'' clusters if not specified or set to null.
Cluster list is ignored when geo cascade is disabled.'
operationId: Account_UpdateAccountDistribution
requestBody:
x-name: model
content:
application/json:
schema:
$ref: '#/components/schemas/AccountDistributionModel'
examples:
update:
summary: update
value:
geoCascade:
isenabled: true
clusters:
- phx-1
- ams-1
- lon-1
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfAccountDistributionModel'
examples:
success:
summary: success
value:
status: success
data:
geoCascade:
isEnabled: true
clusters:
- phx-1
- ams-1
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/FailResponse'
examples:
failure:
summary: failure
value:
status: fail
data:
message: Geo cascade Clusters list cannot be empty
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)
security:
- API_Secret: []
/api/v3/account/security:
get:
tags:
- Account
summary: Read Account Security Settings
description: Gets account wide security settings. If a Token (either Publish or Subscribe) does not define any security settings, the account wide rules are used.
operationId: Account_GetAccountSecurity
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessAccountGeoRestrictions'
examples:
allowed:
summary: allowed
value:
status: success
data:
allowedCountries:
- US
deniedCountries: []
denied:
summary: denied
value:
status: success
data:
allowedCountries: []
deniedCountries:
- UK
'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)
security:
- API_Secret: []
put:
tags:
- Account
summary: Update Account Security Settings
description: Update account wide security settings. Updated to an empty array `[]` removes all rules of that type.
operationId: Account_UpdateAccountSecurity
requestBody:
x-name: model
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAccountGeoModel'
examples:
allowed:
summary: allowed
value:
allowedCountries:
- US
deniedCountries: []
denied:
summary: denied
value:
allowedCountries: []
deniedCountries:
- UK
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessAccountGeoRestrictions'
examples:
allowed:
summary: allowed
value:
status: success
data:
allowedCountries:
- US
deniedCountries: []
denied:
summary: denied
value:
status: success
data:
allowedCountries: []
deniedCountries:
- UK
'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)
security:
- API_Secret: []
/api/v3/account/info:
get:
tags:
- Account
summary: Read Account Info
description: Returns basic information about the authenticated account, including its `accountId` (the public account identifier used in stream IDs, e.g. `/`).
operationId: Account_GetAccountInfo
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponseOfAccountInfoResponseModel'
examples:
success:
summary: success
value:
status: success
data:
accountId: abc123
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)
security:
- API_Secret: []
/api/account/geo_cascade:
get:
tags:
- Account
summary: Read Account Geo Cascade Settings
description: '**Please refer to Get Account Distribution Settings**
Gets account wide geo cascade settings. If a Publish Token does not define any geo cascade settings, the account wide settings are used.'
operationId: Account_GetGeoCascade
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessAccountGeoCascade'
examples:
success:
summary: success
value:
status: success
data:
isEnabled: true
clusters:
- phx-1
- ams-1
'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: []
put:
tags:
- Account
summary: Update Account Geo Cascade Settings
description: '**Please refer to Update Account Distribution Settings**
Update account wide geo cascade settings to enable/disable the feature or update the account default cluster list.
''["all"]'' could be used in place of cluster list to cascade stream to all existing and any future clusters available to the account.
Empty cluster list is not allowed when enabling geo cascade feature. Cluster list is translated to ''["all"]'' clusters if not specified or set to null.
Cluster list is ignored when geo cascade is disabled.'
operationId: Account_UpdateGeoCascade
requestBody:
x-name: model
content:
application/json:
schema:
$ref: '#/components/schemas/GeoCascadeModel'
examples:
update:
summary: update
value:
isenabled: true
clusters:
- phx-1
- ams-1
- lon-1
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessAccountGeoCascade'
examples:
success:
summary: success
value:
status: success
data:
isEnabled: true
clusters:
- phx-1
- ams-1
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/FailResponse'
examples:
failure:
summary: failure
value:
status: fail
data:
message: Geo cascade Clusters list cannot be empty
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/geo/account:
get:
tags:
- Account
summary: Read Account Geo Restrictions
description: '**Please refer to Get Account Security Settings**
Gets account wide geo restrictions. If a Token (either Publish or Subscribe) does not define any geo restrictions, the account wide rules are used.'
operationId: Geo_Geo
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessAccountGeoRestrictions'
examples:
allowed:
summary: allowed
value:
status: success
data:
allowedCountries:
- US
deniedCountries: []
denied:
summary: denied
value:
status: success
data:
allowedCountries: []
deniedCountries:
- UK
'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: []
post:
tags:
- Account
summary: Update Account Geo Restrictions
description: '**Please refer to Update Account Security Settings**
Update account wide geo restrictions. Updated to an empty array `[]` removes all rules of that type.'
operationId: Geo_UpdateGeo
requestBody:
x-name: model
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAccountGeoModel'
examples:
allowed:
summary: allowed
value:
allowedCountries:
- US
deniedCountries: []
denied:
summary: denied
value:
allowedCountries: []
deniedCountries:
- UK
required: true
x-position: 1
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessAccountGeoRestrictions'
examples:
allowed:
summary: allowed
value:
status: success
data:
allowedCountries:
- US
deniedCountries: []
denied:
summary: denied
value:
status: success
data:
allowedCountries: []
deniedCountries:
- UK
'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:
AccountDistributionModel:
type: object
additionalProperties: false
required:
- geoCascade
properties:
geoCascade:
description: Controls if and which geographic clusters are included for regional content delivery
oneOf:
- $ref: '#/components/schemas/GeoCascadeModel'
GeoCascadeModel:
type: object
additionalProperties: false
required:
- isEnabled
properties:
isEnabled:
type: boolean
description: Enable or Disable geo cascade.
clusters:
type:
- array
- 'null'
description: List of cluster IDs to geo cascade publish stream. List cannot be empty when IsEnabled is true. List is ignored when IsEnabled is set to false. Defaults to '["all"]' if unset.
items:
type: string
MediaAssetStorageType:
type: string
description: ''
x-enumNames:
- Gcs
- AwsS3
- DolbyStorage
enum:
- gcs
- awsS3
- dolbyStorage
MediaAssetExpirationResponseModel:
type: object
additionalProperties: false
properties:
timelines:
description: 'Account level expiration rule for timelines. If custom rule is not set, by default, timelines expire after 1 day. '
oneOf:
- $ref: '#/components/schemas/TimeSpanModel'
recordings:
description: "Account level expiration rule for recordings.Expiration countdown begin upon recording creation (i.e. when [Create Media Asset](#operation/MediaAssets_CreateMediaAsset) the recording is stopped).\n\n If custom rule is not set, recordings never expire and this field will be empty. "
oneOf:
- $ref: '#/components/schemas/TimeSpanModel'
clips:
description: "Account level expiration rule for clips. Expiration countdown begin upon clip creation (i.e. when [Create Media Asset](#operation/MediaAssets_CreateMediaAsset) is invoke).\n\n If custom rule is not set, clips never expire by default and this field will be empty. Setting the `expiration` value on in the request body of [Create Media Asset](#operation/MediaAssets_CreateMediaAsset) overrides the rule configured here."
oneOf:
- $ref: '#/components/schemas/TimeSpanModel'
SuccessResponseOfAccountDistributionModel:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/AccountDistributionModel'
StorageProfileResponseModel:
type: object
additionalProperties: false
properties:
id:
type:
- string
- 'null'
description: The unique identifier of the storage profile.
name:
type:
- string
- 'null'
description: The name of the storage profile.
default:
type:
- boolean
- 'null'
description: Flag indicating whether this is the default storage profile.
type:
description: The type of this storage profile.
oneOf:
- $ref: '#/components/schemas/MediaAssetStorageType'
options:
description: The options of this storage profile.
oneOf:
- $ref: '#/components/schemas/StorageOptionsModel'
UpdateStorageOptionsModel:
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`.
maxLength: 1000
minLength: 0
bucketName:
type:
- string
- 'null'
description: Name of bucket to upload clips to. Please ensure Dolby.io's service account is granted access.
bucketRegion:
type:
- string
- 'null'
description: Region of the specified bucket if using storage provider awsS3
maxLength: 32
minLength: 1
SuccessResponseOfListOfStorageProfileResponseModel:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
type: array
items:
$ref: '#/components/schemas/StorageProfileResponseModel'
SuccessAccountGeoRestrictions:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/AccountGeoModel'
ListStorageProfilesSortBy:
type: string
description: ''
x-enumNames:
- Name
enum:
- name
MediaAssetStorageModel:
type: object
additionalProperties: false
properties:
profileId:
type:
- string
- 'null'
description: Optional. Provide the id of a storage profile. Mutually exclusive with Type.
type:
description: 'Optional. Use to indicate the storage provider type for a one-off storage configuration. Mutually exclusive with ProfileId. Storage provider type. One of the following:
* AwsS3 - Amazon S3
* Gcs - Google Cloud Storage
* DolbyStorage - Dolby.io''s storage buckets. Call Read Media Asset to retrieve the clip file.'
oneOf:
- $ref: '#/components/schemas/MediaAssetStorageType'
options:
description: 'May be used in the following ways:
1. Optional. Override parameters of a storage profile specified via ProfileId
2. Required. Set parameters for a one-off storage configuration when Type is provided
3. Optional. Override parameters of the default storage profile if neither ProfileId or Type are provided'
oneOf:
- $ref: '#/components/schemas/UpdateStorageOptionsModel'
SuccessResponseOfAccountInfoResponseModel:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/AccountInfoResponseModel'
SuccessValidateRecordStorageResponse:
type: object
additionalProperties: false
properties:
id:
type:
- string
- 'null'
storage:
oneOf:
- $ref: '#/components/schemas/MediaAssetStorageResponseModel'
AccountInfoResponseModel:
type: object
additionalProperties: false
properties:
accountId:
type:
- string
- 'null'
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: {}
GeoCascadeModel2:
type: object
additionalProperties: false
properties:
isEnabled:
type:
- boolean
- 'null'
description: Enable or Disable geo cascade. Defaults to Account settings if unset.
clusters:
type:
- array
- 'null'
description: List of cluster IDs to geo cascade publish stream. List cannot be empty when IsEnabled is true. List is ignored when IsEnabled is set to false. Defaults to '["all"]' if unset.
items:
type: string
UpdateStorageProfileModel:
type: object
additionalProperties: false
properties:
name:
type:
- string
- 'null'
description: Update the label for your storage profile
maxLength: 256
minLength: 0
default:
type:
- boolean
- 'null'
description: Set this as the default storage profile for your account. If set to true this will replace the previous default profile.
type:
description: 'Storage provider type. One of the following:
* AwsS3 - Amazon S3
* Gcs - Google Cloud Storage'
oneOf:
- $ref: '#/components/schemas/MediaAssetStorageType'
options:
description: The storage options.
oneOf:
- $ref: '#/components/schemas/UpdateStorageOptionsModel'
UpdateAccountGeoModel:
type: object
additionalProperties: false
properties:
updateAllowedCountries:
type:
- array
- 'null'
description: Set the list of permitted countries as the account default when creating new tokens. List must be less than 768 characters.
items:
type: string
updateDeniedCountries:
type:
- array
- 'null'
description: Set the list of excluded countries as the account default when creating new tokens. List must be less than 768 characters.
items:
type: string
CreateStorageProfileModel:
type: object
additionalProperties: false
required:
- type
- options
properties:
name:
type:
- string
- 'null'
description: Provide a label for your storage profile
maxLength: 256
minLength: 1
default:
type:
- boolean
- 'null'
description: Set this as the default storage profile for your account. If set to true this will replace the previous default profile.
default: false
type:
description: 'Storage provider type. One of the following:
* AwsS3 - Amazon S3
* Gcs - Google Cloud Storage'
oneOf:
- $ref: '#/components/schemas/MediaAssetStorageType'
options:
description: The storage options.
oneOf:
- $ref: '#/components/schemas/StorageOptionsModel'
AccountGeoModel:
type: object
additionalProperties: false
properties:
allowedCountries:
type: array
items:
type: string
deniedCountries:
type: array
items:
type: string
TimeSpanModel:
type: object
additionalProperties: false
properties:
days:
type:
- integer
- 'null'
format: int32
maximum: 365.0
minimum: 1.0
SuccessAccountGeoCascade:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/GeoCascadeModel2'
MediaAssetStorageResponseModel:
type: object
additionalProperties: false
properties:
type:
description: Storage provider type
oneOf:
- $ref: '#/components/schemas/MediaAssetStorageType'
path:
type:
- string
- 'null'
description: 'Path to clip storage location. Available only for external storage configurations. '
UpdateMediaAssetExpirationModel:
type: object
additionalProperties: false
properties:
timelines:
description: "Update account level expiration rule for timelines. Specified timespans must be non-zero.\n\n This limits the earliest permissible startTime when creating clips. Expiration rule updates take effect immediately, with then system cleaning up any timelines created prior to the expiration rule.\n\n By default, timelines expire after 1 day.\n\n Provide an empty json to clear settings."
oneOf:
- $ref: '#/components/schemas/TimeSpanModel'
recordings:
description: "Update account level expiration rule for recordings. Specified timespans must be non-zero.\n\n Updates to the expiration rule are applied only to new recordings.\n\n By default, recordings do not expire unless this value is updated.\n\n Provide an empty json to clear settings."
oneOf:
- $ref: '#/components/schemas/TimeSpanModel'
clips:
description: "Update account level expiration rule for clips. Specified timespans must be non-zero.\n\n Updates to the expiration rule are applied only to new clips. This account level default can be overridden for individual clips upon clip creation.\n\n By default, clip do not expire unless this value is updated or expiration is specified on creation.\n\n Provide an empty json to clear settings. "
oneOf:
- $ref: '#/components/schemas/TimeSpanModel'
StorageOptionsModel:
type: object
additionalProperties: false
required:
- bucketName
properties:
objectPrefix:
type:
- string
- 'null'
description: Optional. Prefix to object when stored in bucket i.e. `protocol`://`bucketName`/`objectPrefix`/`objectName.ext`. `objectName` is either defined by a system assigned GUID or the user-specified `clipName`.
maxLength: 1000
minLength: 0
bucketName:
type: string
description: Name of bucket to upload clips to. Please ensure Dolby.io's service account is granted access.
minLength: 1
bucketRegion:
type:
- string
- 'null'
description: 'Region of the specified bucket. Required when using storageType AwsS3 '
maxLength: 32
minLength: 1
SuccessResponseOfSuccessValidateRecordStorageResponse:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/SuccessValidateRecordStorageResponse'
SuccessResponseOfBoolean:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
type: boolean
FailResponse:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: fail
minLength: 1
data: {}
SuccessResponseOfStorageProfileResponseModel:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/StorageProfileResponseModel'
SuccessResponseOfMediaAssetExpirationResponseModel:
type: object
additionalProperties: false
required:
- status
- data
properties:
status:
type: string
default: success
minLength: 1
data:
$ref: '#/components/schemas/MediaAssetExpirationResponseModel'
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
'
scheme: bearer
x-generator: NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0))
x-code-samples-replace: {}