Dolby · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Millicast Account API
18 actions
18 updates
phrasing
extends
openapi/dolby-account-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Dolby's API. It is a proposal applied on top of the contract, not a document Dolby publishes.
What the actions change
x-apievangelist-phrasing
Targets 18 · first 16 shown; the file carries all of them
$.info
$.paths['/api/v3/account/media/expiration'].get
$.paths['/api/v3/account/media/expiration'].put
$.paths['/api/v3/account/media/storage'].get
$.paths['/api/v3/account/media/storage'].post
$.paths['/api/v3/account/media/storage/{id}'].get
$.paths['/api/v3/account/media/storage/{id}'].put
$.paths['/api/v3/account/media/storage/{id}'].delete
$.paths['/api/v3/account/media/storage/validate'].post
$.paths['/api/v3/account/distribution'].get
$.paths['/api/v3/account/distribution'].put
$.paths['/api/v3/account/security'].get
$.paths['/api/v3/account/security'].put
$.paths['/api/v3/account/info'].get
$.paths['/api/account/geo_cascade'].get
$.paths['/api/account/geo_cascade'].put
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Millicast Account API
version: 1.0.0
extends: openapi/dolby-account-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-10-01'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 17
- target: $.paths['/api/v3/account/media/expiration'].get
update:
x-apievangelist-phrasing:
intent: View media asset expiration rules
effect: read
questions:
- How long are my recordings and clips kept before they expire?
- What account-wide expiration rules apply to timelines, recordings and clips?
instructions:
- text: Show my account's media asset expiration rules.
- text: Tell me when recordings and clips expire by default on my account.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/expiration'].put
update:
x-apievangelist-phrasing:
intent: Change media asset expiration rules
effect: write
questions:
- Can I make recordings expire after a different number of days account-wide?
- How do I change how long clips are retained by default?
instructions:
- text: Set the account expiration rule for recordings to {recordings}.
slots:
recordings: requestBody.recordings
- text: Update default clip expiration to {clips} and timeline expiration to {timelines}.
slots:
clips: requestBody.clips
timelines: requestBody.timelines
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/storage'].get
update:
x-apievangelist-phrasing:
intent: List cloud storage profiles
effect: read
questions:
- Which cloud storage profiles have I set up for media delivery?
- Can I find out which storage profile is the account default?
instructions:
- text: List my storage profiles.
- text: Show storage profiles sorted by {sort}.
slots:
sort: query.sort
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/storage'].post
update:
x-apievangelist-phrasing:
intent: Create a cloud storage profile
effect: write
questions:
- How do I send finished recordings to my own S3 or Google Cloud Storage bucket?
- Can I make a new storage profile the account default?
instructions:
- text: Create a {type} storage profile named {name} with options {options}.
slots:
type: requestBody.type
name: requestBody.name
options: requestBody.options
- text: Add a default storage profile of type {type} using options {options}.
slots:
type: requestBody.type
options: requestBody.options
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/storage/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get one storage profile
effect: read
questions:
- What settings does a particular storage profile have?
- Can I read a saved storage profile by its ID?
instructions:
- text: Show storage profile {id}.
slots:
id: path.id
- text: Get the bucket configuration of storage profile {id}.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/storage/{id}'].put
update:
x-apievangelist-phrasing:
intent: Update a storage profile
effect: write
questions:
- Can I rename a storage profile or change its bucket options?
- Is it possible to switch which storage profile is the default by editing it?
instructions:
- text: Rename storage profile {id} to {name}.
slots:
id: path.id
name: requestBody.name
- text: Update the options of storage profile {id} to {options}.
slots:
id: path.id
options: requestBody.options
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/storage/{id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a storage profile
effect: destructive
questions:
- How do I remove a storage profile I no longer use?
- What do I need to delete a saved storage profile?
instructions:
- text: Delete storage profile {id}.
slots:
id: path.id
- text: Remove the storage profile with ID {id} from my account.
slots:
id: path.id
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/media/storage/validate'].post
update:
x-apievangelist-phrasing:
intent: Validate third-party storage permissions
effect: write
questions:
- Can I check that my bucket gives Dolby.io permission to upload media?
- How long are storage validation results available?
instructions:
- text: Validate upload permissions for storage profile {profileId}.
slots:
profileId: requestBody.profileId
- text: Run a one-off storage validation for a {type} bucket with options {options}.
slots:
type: requestBody.type
options: requestBody.options
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/distribution'].get
update:
x-apievangelist-phrasing:
intent: View account distribution settings
effect: read
questions:
- What default distribution settings do new publish tokens inherit?
- Is geo cascade enabled for my account, and with which clusters?
instructions:
- text: Show my account-wide distribution settings.
- text: Get the default geo cascade configuration for my account.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/distribution'].put
update:
x-apievangelist-phrasing:
intent: Update account distribution settings
effect: write
questions:
- How do I turn on geo cascade for every new publish token?
- Can I change the default cluster list used for stream distribution?
instructions:
- text: Set my account distribution geo cascade to {geoCascade}.
slots:
geoCascade: requestBody.geoCascade
- text: Enable geo cascade account-wide with settings {geoCascade}.
slots:
geoCascade: requestBody.geoCascade
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/security'].get
update:
x-apievangelist-phrasing:
intent: View account security settings
effect: read
questions:
- Which countries are allowed or blocked from viewing my streams by default?
- What security rules apply when a token has none of its own?
instructions:
- text: Show my account-wide security settings.
- text: List the default allowed and denied countries for my account.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/security'].put
update:
x-apievangelist-phrasing:
intent: Update account security settings
effect: write
questions:
- How do I block viewers in certain countries across my whole account?
- Can I clear all account-level country rules at once?
instructions:
- text: Set account allowed countries to {updateAllowedCountries}.
slots:
updateAllowedCountries: requestBody.updateAllowedCountries
- text: Block countries {updateDeniedCountries} in my account security settings.
slots:
updateDeniedCountries: requestBody.updateDeniedCountries
method: generated
generated: '2026-10-01'
- target: $.paths['/api/v3/account/info'].get
update:
x-apievangelist-phrasing:
intent: Get basic account info
effect: read
questions:
- What is my public account ID used in stream IDs?
- Which account am I authenticated as?
instructions:
- text: Show my account info.
- text: Get my accountId for building stream IDs.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/account/geo_cascade'].get
update:
x-apievangelist-phrasing:
intent: View legacy geo cascade settings
effect: read
questions:
- Where is the older geo cascade settings endpoint for my account?
- Can I still read geo cascade through the legacy account endpoint?
instructions:
- text: Show my account geo cascade settings using the legacy endpoint.
- text: Read the old-style geo cascade config for my account.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/account/geo_cascade'].put
update:
x-apievangelist-phrasing:
intent: Update legacy geo cascade settings
effect: write
questions:
- Can I toggle geo cascade through the older dedicated endpoint?
- Which clusters can I list when updating legacy geo cascade?
instructions:
- text: Set legacy geo cascade enabled to {isEnabled}.
slots:
isEnabled: requestBody.isEnabled
- text: Update the old geo cascade setting to {isEnabled} with clusters {clusters}.
slots:
isEnabled: requestBody.isEnabled
clusters: requestBody.clusters
method: generated
generated: '2026-10-01'
- target: $.paths['/api/geo/account'].get
update:
x-apievangelist-phrasing:
intent: View legacy account geo restrictions
effect: read
questions:
- Where do I read account geo restrictions using the deprecated geo endpoint?
- Is there a legacy call that returns my allowed and denied countries?
instructions:
- text: Show my account geo restrictions from the legacy geo endpoint.
- text: Read old-style geo restrictions for my account.
method: generated
generated: '2026-10-01'
- target: $.paths['/api/geo/account'].post
update:
x-apievangelist-phrasing:
intent: Update legacy account geo restrictions
effect: write
questions:
- Can I still update country restrictions through the deprecated geo endpoint?
- Does sending an empty list to the legacy geo update remove the rules?
instructions:
- text: Using the legacy geo endpoint, allow only countries {updateAllowedCountries}.
slots:
updateAllowedCountries: requestBody.updateAllowedCountries
- text: Using the old geo restrictions call, deny countries {updateDeniedCountries}.
slots:
updateDeniedCountries: requestBody.updateDeniedCountries
method: generated
generated: '2026-10-01'