# 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'