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.
View Overlay File View on GitHub Overlay Specification

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

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